Asio的异步发送的问题


#1

asio的异步发送在同一个socket实例中是非线程安全的,所以多个线程中调用async_send是可能会出现问题的,那么如何设计,让这个异步发送不阻塞但也能线程安全呢?


#2

你说的都是些什么啊?又是异步又是阻塞的。。。


#3

不好意思。说的挺乱的, 其实就是想知道解决同一个socket实例async_send非线程安全的方法,我自己以前用一个队列来保存发送信息,然后在回调里面检查该队列再继续发送,但是一旦网络不佳,发送量又大的时候这个队列就会非常大。不知道这种问题你们是怎么解决的


#4

话说这个网站蛮好的 还会发邮件提醒回复,为什么感觉人比较少啊


#5

队列设置个大小就好了。太多在队列里面,就不要发了。 这其实是一个生产者消费者问题,生产者的生产速度大于消费者,就必须暂停生产。


#6

因为 c++er 少吧。


#7

就在一个线程里调 async_send 呗.

多个线程里调感觉上是能快速消费队列, 但是毕竟要加锁吧, 结果未必比单线程消费的快啊.