Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ boost::asio::ssl::context可以在多个ssl流之间共享吗?_C++_Multithreading_Ssl_Boost Asio - Fatal编程技术网

C++ boost::asio::ssl::context可以在多个ssl流之间共享吗?

C++ boost::asio::ssl::context可以在多个ssl流之间共享吗?,c++,multithreading,ssl,boost-asio,C++,Multithreading,Ssl,Boost Asio,在互联网上翻了几个小时,我找不到我问题的答案 我的模型是这样的:我有一个共享的boost::asio::ssl::context,用于创建boost::asio::ssl::stream的实例。然后流对象被传递到不同的线程 这个型号是线程安全的吗?相同的boost::asio::ssl::context能否用于构建将同时使用的不同ssl流对象 > ,在将此问题标记为副本之前,请仔细阅读阅读说明。谢谢大家! 在我的特定情况下,没有对象是共享的betweed线程。所以在线程安全中说的任何话都不会

在互联网上翻了几个小时,我找不到我问题的答案

我的模型是这样的:我有一个共享的
boost::asio::ssl::context
,用于创建
boost::asio::ssl::stream
的实例。然后流对象被传递到不同的线程

这个型号是线程安全的吗?相同的
boost::asio::ssl::context
能否用于构建将同时使用的不同ssl流对象

<强> > <强>,在将此问题标记为副本之前,请仔细阅读阅读说明。谢谢大家!


在我的特定情况下,没有对象是共享的betweed线程。所以在线程安全中说的任何话都不会影响我的案例。我从单个线程访问
boost::asio::ssl::context

因为ssl上下文需要在ssl会话之间共享(否则,会话恢复将如何工作),ssl上下文类在内部是完全线程安全的。您可以在多个SSL连接中使用SSL上下文,也可以在多个线程中使用SSL上下文。

但是不要忘记正确初始化libssl!非常感谢你的帮助!这是我需要的一个断言。直觉上,我认为这应该是可能的,而且是可行的。但当某些东西工作时,并不意味着它是正确的,可能会在另一台机器上出现故障。@RichardHodges我认为
boost
应该在内部初始化其SSL后端。就我所知,它是这样做的。@GreenScape其他人都是这样做的。“真的没有别的办法了。”格林斯开普只是看了看来源。你说得对。openssl是在
asio::ssl::context\u服务的第一个实例上初始化的