2 0

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

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

5个答案 按时间排序 按投票排序

1 0

采纳的答案

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

2013年4月22日 15:39
0 0

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

2013年4月23日 12:28
0 0

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

2013年4月22日 15:13
0 0

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

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

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

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

2013年4月22日 15:08
0 0

会的。

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

2013年4月22日 14:48

相关推荐

    VB.net 多线程编程的详细说明

    在多线程编程中,线程间通信是指不同线程之间传递数据或消息的过程。常见的通信方式包括: 1. **事件和委托:** 可以使用事件和委托机制来实现线程间的异步通信。 ```vbnet Imports System.Threading ...

    HttpClient问题:The server failed to respond with a valid HTTP resp

    System.setProperty("org.apache.commons.logging.LogFactory", "org.apache.commons.logging.impl.SimpleLogFactory"); System.setProperty("log4j.rootLogger", "DEBUG, stdout"); ``` 总的来说,解决"The ...

    Java串口通信

    System.setProperty("rxtx.SerialPorts", "/dev/ttyS0"); // 对于Linux System.setProperty("rxtx.SerialPorts", "COM1"); // 对于Windows ``` 2. 初始化SerialPort对象: ```java CommPortIdentifier ...

    android将域名转成Ip的demo

    props.setProperty("sun.net.client.defaultConnectTimeout", "5000"); // 设置连接超时,单位毫秒 props.setProperty("sun.net.client.defaultReadTimeout", "5000"); // 设置读取超时,单位毫秒 ``` 此外,考虑到...

    Android使用HttpURLConnection访问网络

    - 调整连接池大小以优化性能,可通过System.setProperty("http.maxConnections", "5")设置。 以上就是使用HttpURLConnection在Android应用中访问网络的基本步骤和关键知识点,开发者可以根据实际需求进行调整和...

    IEDriverServer

    System.setProperty("webdriver.ie.driver", "path/to/IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(); ``` 这里,“path/to/IEDriverServer.exe”应替换为实际的文件路径。 4. **...

    net学习笔记及其他代码应用

    29.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。 public void test(int i) { lock(this) { if (i>10) { i--; test(i); } } } 答:不会发生死锁,(但...

    C++毕业设计:基于Qt的多线程局域网聊天系统(含客户端+服务端).zip

    Qt的元对象系统(Meta-Object-System)提供了对象之间通信的信号与槽机制、运行时类型信息和动态属性系统。 元对象系统由以下三个基础组成: 1.QObject类是所有使用元对象系统的类的基类; 2.在一个类的private部分...

    超级有影响力霸气的Java面试题大全文档

    HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者...

    第一节 Form窗体间的参数传递[基础学习]

    对于更复杂的跨线程通信,可以使用`Control.BeginInvoke`或`Control.Invoke`方法,或者通过`System.Threading`命名空间下的队列类,如`ConcurrentQueue`。 每种方法都有其适用场景,选择哪种取决于你的具体需求,...

    c#面试题及答案(二).txt

    题目中提到了关于多线程安全的问题,但未给出具体代码。在多线程环境中,需要特别注意同步和锁定机制,避免竞态条件等问题的发生。 #### 10. .NET Remoting 与 WebService 的对比 题目中比较了 .NET Remoting 和 ...

    面试题问题合集.docx

    3. **通信方式**:线程间通信相对简单,进程间通信复杂。 4. **并发度**:线程可以提供更高的并发度。 ### Redis 缓存机制与应用场景 #### Redis 缓存机制 Redis 作为一款内存数据库,可以高效地存储和检索数据。...

    笔试型_J2EE初级技术面试题目

    JSP动作元素包括、、<jsp:setProperty>、等,用于在页面中执行动态操作。 #### 35. JSP页面组成元素 JSP页面由HTML标记、Java脚本代码、JSP指令、JSP动作元素、注释等组成。 #### 36. 请求和重定向的区别 请求...

    javaAPI文档,有中文有英文。

    3. **多线程**:`java.lang.Thread`和`java.util.concurrent`包提供了创建和管理线程的工具,如`ExecutorService`、`Semaphore`等。 4. **异常处理**:`java.lang.Throwable`及其子类如`Exception`和`Error`,是...

    selenium-tutorial

    System.setProperty("webdriver.chrome.driver", "path/to/chromedriver.exe"); WebDriver driver = new ChromeDriver(); ``` 2. **导航**: 使用`driver.get()`方法打开目标URL。 ```java driver.get(...

    Qt 编程技巧搜集的网页信息

    12. **属性系统(Properties System)**:使用`Q_PROPERTY`宏声明对象的可读写属性,并配合`QObject::setProperty`和`QMetaObject::property`进行操作。 13. **样式表(QSS,Qt Style Sheets)**:类似CSS,用于...

    Automation-Tests:Selenium-Java中的自动化测试脚本

    System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); ``` 接着,我们可以使用WebDriver提供的API来操作浏览器,如打开URL、查找元素、执行点击、输入...

    Java开发技术大全 电子版

    8.4线程的通信与协调277 8.4.1线程的互斥277 8.4.2线程的同步279 8.4.3暂停、恢复和停止线程282 8.4.4生产者-消费者问题实例284 8.5本章小结287 第9章运行时类型识别288 9.1RTTI的作用288 9.2用Class类来...

Global site tag (gtag.js) - Google Analytics