boost:asio 线程间的数据的发送,该怎么解决
boost::asio 线程间的数据的发送假设现在有线程1 线程2线程3和 线程100 以及主线程现在线程1,2,3在同一时
boost::asio 线程间的数据的发送
假设现在有 线程1 线程2 线程3 和 线程100 以及主线程
现在线程1,2,3在同一时间发送数据给线程100. 线程100要怎么处理才能不漏掉数据。
现在我遇到的问题是1,2,3线程向线程100分别发送数据,同一时间接收了一个线程的数据就会漏掉其他线程的数据。
[解决办法]
shit,holy shit! 你这里说的意思 和你主楼说的是一个意思么?
[解决办法]Boost::asio的通讯是基于数据流通讯的。
所以你发的3次数据是都收到了,但是估计你的数据包很小,所以底层发送时把包合并了
你的100号线程在处理的时候是按包处理的,并没有分包处理是吧?
所以100号线程收到的数据结构应该是这样的:
1号包数据+2号包数据+3号包数据
你只处理了1号包数据后,就把整个包扔了
[解决办法]线程同步互斥的问题,
中间加个缓冲, 然后不就是生产者 消费者问题