gpt4 book ai didi

ssl - SSLContext.createSSLEngine() 线程安全吗?

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

我像这样使用 Java 6 (SunJSSE) 中的默认 JSSE 提供程序,

SSLContext sslCtx = SSLContext.getInstance("TLS");

我可以从多个线程安全地调用方法 sslCtx.createSSLEngine() 吗?

更新 1:以这种方式调用 createSSLEngine() 的代码仅在服务器端运行。基本上,线程会为连接到服务器的每个客户端调用此方法。

最佳答案

SSLContext.createSSLEngine() 的调用似乎是线程安全的。至少基于应用程序没有因任何与竞争条件相关的错误而失败这一事实。

为了寻找明确的答案,我下载了 OpenJDK6 b27 的源代码并看了一下。当然,我假设这与 Oracle 的 JRE 6 中的代码相同。

SSLContext.createSSLEngine() 被调用时,它会依次调用抽象方法 engineCreateSSLEngine() 来实现它对 javax.net 的任何实现.ssl.SSLContextSpi 类。在这种情况下,实现是 sun.security.ssl.SSLContextImplSSLContextImpl 提供的engineCreateSSLEngine() 方法的实现简单地返回一个新的 sun.security.ssl.SSLEngineImpl 实例。通过调用 SSLEngineImpl(SSLContextImpl ctx) 构造函数。

检查代码,我找不到任何暗示可能的线程不安全操作的内容。

关于ssl - SSLContext.createSSLEngine() 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29807594/

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