gpt4 book ai didi

multithreading - Asio SSL 流线程安全

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:26 25 4
gpt4 key购买 nike

我正在检查关于 Asio 的文档,准确地说是 SSL 部分,然后遇到 ssl::stream
以及线程安全声明:
共享对象:不安全。应用程序还必须确保所有异步操作都在同一个隐式或显式链中执行。
现在我明白 OpenSSL BIO 不允许并发 SSL_ReadSSL_Write 操作,但我无法找到哪些函数专门用于 strand

  • 因为使用 strand.post(async_read)/strand.post(async_write) 不应该(据我所知)确保并发 SSL_ReadSSL_Write 不会发生,因为即使这些异步函数不会立即执行,它们也会立即返回,因此不会读取任何数据。
  • 在处理函数上使用 strand 似乎也没有任何好处(对我来说),因为当调用这些处理函数时,数据已经被读取并复制到用户定义的缓冲区中。

谢谢

最佳答案

好的,经过更多谷歌搜索后,我找到了我要找的东西。解决方案是示例 HTTP Server 3,它在完成处理程序上使用 strand。尽管我仍然不明白它有什么帮助,但它确实可以防止并发 SSL 操作,因此不会使我的程序崩溃。

关于multithreading - Asio SSL 流线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15217555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com