一个困扰我n久的同步问题,大家帮忙啊!!!
一个网络服务端采用异步IO
流程如下:
服务端有一个死循环采用 select 逐个检查每个套接字(tcp)的可读,可写性
一个套接字对应一个link
服务端在某个套接字上读到数据后转交到该套接字所对应的link来处理
link 从他自己的接收缓冲中分析出一条或多条命令 然后将这些命令挂到一个专门的
命令处理线程处理 该线程处理完后将要回送的数据写到该link的发送缓冲中
等待link 所对应的套接字在服务端死循环中在可写时被发送出去
问题就在 如何处理服务端死循环发送某套接字数据 和 命令处理线程向某套接字发送缓冲写数据 时的同步!!!
假如对每个套接字都用关键段 那么服务端假如有很多的连接的话 可以承受得了吗??
如果用一个关键段老同步所有的操作又显得效率底下了
套接字的发送缓冲为一个队列
在此向大家请教!!!!!