socket同时读写问题

来源:互联网 发布:linux 激活网卡 编辑:程序博客网 时间:2024/06/05 06:23
如果是多个线程同时写socket,那么在临界区里工作的线程为了保证数据包的完整发送,必须循环发送等待,直到数据都发送到系统缓冲区才能离开临界区。
而这样就导致socket的行为与阻塞方式发送无异,发送效率因此而被限制。
所以一个好的tcp socket处理框架,应该是只有一个线程来负责数据的收发,从而避免那些无穷无尽的同步问题。
如果需要多个线程同时读访问或写访问同一个tcp socket, 那多半是程序设计上出了问题。
对于tcp的传输,都是要用应用层的协议保证接收方能解释对方发送过来的数据,这样,至少要保证一块数据是一个完整的协议 ... 
0 0
原创粉丝点击