![](/img/trans.png)
[英]boost asio - SSL async_read and async_write from one thread
[英]Boost.asio: can I do async_read and async_write simultaneously from one thread?
我已經讀過不建議對來自不同線程的套接字進行多次操作。 但是,如果我從同一個線程socket.async_read和下一個socket.async_write調用(不等待前一個完成)怎么辦? 當其中一項操作完成后,我可以預見到正確的回調將會運行嗎?
我發現是的,你可以在同一個套接字上有一個掛起的async_read
和一個掛起的async_write
而沒有問題。 當您調用io_service::run()
方法時,回調將按預期完成。
在同一個套接字上發出多個async_reads,或在同一個套接字上發出多個async_writes,可能會導致意外行為,具體取決於所涉及的套接字類型。 特別是,在同一個TCP套接字上使用多個async_writes會導致數據以與您原先預期不同的順序發出,並且數據發送的混合。 在UDP中,它可能更合理,但我仍然建議反對它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.