owenliang/boost_asio

您好,请问一下为什么在server中加一个write_queue_?

Closed this issue · 3 comments

fyzhr commented

是不是为了避免类似sample里的async_read和async_write互相嵌套这种写法,将逻辑(也就是echo_msg放在read或者write中),将一个处理事件与一个msg产生一一关联,使用队列保证了线程安全?

写队列就是先后发起的写操作要排队,依次写出去的意思。

你也知道asio是preactor模式,它是在写完成后回调用户,内部不会帮你处理多次先后send的排队问题的。

如果你要在前1个写完成之前,就发起下1个写操作,这会导致asio的socket出问题,说白了你没有按照它的假设来玩,一定是会玩错的。

@fyzhr

fyzhr commented

谢谢大佬指点,说的太明白了!