这种场景是 IO 非常大的时候用的?
线程1: 读数据, 处理数据, 读数据, 处理数据
线程2: 写数据, 准备数据, 写数据,准备数据
所以是怕“处理数据”时用时过长,影响准备数据写数据的过程是吧?
如果只用一个线程有一定的可能性写缓存为空时,线程还在处理数据,没时间准备数据。
但是,可以把处理数据与准备数据的过程放到另外一个线程去啊。岂不更妙?
线程1: 读数据 写数据 读数据
线程2: 处理数据 处理数据。
线程3: 准备数据 准备数据
线程中间通过线程间的通信一般很快可以忽略不计。
【 在 z16166 的大作中提到: 】
: 收发全双工就是一种场景吧
: http是一收一发,其他的协议/场景是可能有收的同时也在发的,一个线程负责收,一个线程负责发。
: IOCP是n个线程处理m个连接,以WSASend()/WSARecv()请求的完成结果作为派发单位,派发给对应的线程(优先派发给正在运行的线程,减少线程切换开销),不管是哪个tcp连接的。当然,派发信息里携带的有是哪个tcp连接的context信息的(completion key。overlapped结构也可以扩展
: ...................
--
修改:hgoldfish FROM 110.84.123.*
FROM 110.84.123.*