HTTPS通信,System.setProperty线程安全么

由于项目原因,使用HTTPS通信,里面会用到代码指定证书环境,以下代码就是指定方法,可能会多个线程运行,XX和YY多个线程值不一样,请高手告知是否会有线程安全问题。
System.setProperty("javax.net.ssl.keyStore",XX); System.setProperty("javax.net.ssl.keyStorePassword",YY); :oops:

1、
System.setProperty("javax.net.ssl.keyStore",XX); System.setProperty("javax.net.ssl.keyStorePassword",YY);
这是全局设置 可以考虑在程序启动后设置一次就行
难道每次都是不同的证书?

会的。

多个线程同时set,get的时候就会乱掉。
可能的话,上ThreadLocal好些。

这个问题我也遇到过,是用Authenticator.setDefault()方法的时候,不知道是不是线程安全的,所以没敢用。

Authenticator.setDefault()跟System.setProperty()应该差不多,文档没说线程安全,而且看源码有不少synchronized,却没有ThreadLocal,所以猜测应该不是线程安全的。

如果猜测错误,恳请高手解惑!

如果不是线程安全的,这俩玩意儿如何在多线程环境中使用呢?
如果不能解决此问题,这俩玩意儿岂不是鸡肋。。。

System.setProperty()是jre系统的全局变量,设置了会影响所有的调用,不能这么干,你可以用一个ThreadLocal把这些参数存起来,有一个老帖子关于它的争论,希望能够帮助到你:[url]http://www.iteye.com/problems/20549[/url]

线程安全的。。
底层是通过hashtble来实现的