OpenSSL FAQ声明它可以在线程应用程序中使用:
1。 OpenSSL是否是线程安全的?
如果应用程序设置了线程回调函数,答案是肯定的。
此回调函数引用全局SSL锁定,因此如果您有2个ssl连接运行,则这两个连接都将使用此全局锁定。
然而常见问题仍在继续:
有局限性;例如,多个线程不能同时使用SSL连接。对大多数OpenSSL对象都是如此。
这表示每个SSL连接都需要一个额外的互斥锁。它是否正确?或者,我是否不需要为每个SSL连接添加额外的互斥锁?
答案 0 :(得分:4)
这意味着如果您的连接由多个线程共享,您需要有一个互斥锁,以避免它们同时操作连接。
只要任何单个连接一次仅由一个线程使用(在大多数应用程序中是正常情况),您就不需要进一步锁定。