J
jamesdcs
Unregistered / Unconfirmed
GUEST, unregistred user!
当创建n个线程联系于完成端口。
1、此时如果一个客户端不断发送数据,究竟是一个线程在从完成端口读呢,还是几个线程都在读?对于单cpu的和多cpu的情况是否有所不同?
2、如果,此时是几个客户端同时发送数据,会不会出现“线程A读到client1的2k数据,然后读client2的,线程B读到client1的后2k数据,然后读client2的”这种情况。如果会,这种情况下要是把收到的数据保存到一个全局队列,是不是会出现同一个client的数据顺序混乱?
3、当收到数据后需要比较费时的处理,比如查询数据库(文件),此时应该把这些处理交给另外的线程池,那么在前后这2个线程池中,用什么方式交换数据比较合适?
1、此时如果一个客户端不断发送数据,究竟是一个线程在从完成端口读呢,还是几个线程都在读?对于单cpu的和多cpu的情况是否有所不同?
2、如果,此时是几个客户端同时发送数据,会不会出现“线程A读到client1的2k数据,然后读client2的,线程B读到client1的后2k数据,然后读client2的”这种情况。如果会,这种情况下要是把收到的数据保存到一个全局队列,是不是会出现同一个client的数据顺序混乱?
3、当收到数据后需要比较费时的处理,比如查询数据库(文件),此时应该把这些处理交给另外的线程池,那么在前后这2个线程池中,用什么方式交换数据比较合适?