C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 从一个线程中提升asio – SSL async_read和async_write大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道OpenSSL,boost asio SSL实现是基于的,不允许并发SSL_read()和SSL_write()(即SSL_read()和SSL_write()由不同的线程执行).

从同一个线程调用SSL套接字上的boost asio async_read()和async_write()是否安全?

谢谢

解决方法

boost::asio::ssl:::stream的要求是线程安全;它没有要求哪个线程可以启动操作:

如果应用程序只有一个线程处理io_service,并且async_read()和async_write()是从该线程内启动的,那么它是安全的,因为操作和完成处理程序在隐式链中运行.

另一方面,如果多个线程正在处理io_service,则需要显式链. async_read()和async_write()操作需要从一个strand中启动,而完成处理程序需要由同一个strand包装.

有关Boost.Asio的线程安全要求,线索和组合操作的更多详细信息,请参阅this答案.

大佬总结

以上是大佬教程为你收集整理的c – 从一个线程中提升asio – SSL async_read和async_write全部内容,希望文章能够帮你解决c – 从一个线程中提升asio – SSL async_read和async_write所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。