-
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、
System.setProperty("javax.net.ssl.keyStore",XX); System.setProperty("javax.net.ssl.keyStorePassword",YY);
这是全局设置 可以考虑在程序启动后设置一次就行
难道每次都是不同的证书?2013年4月22日 15:39
-
System.setProperty()是jre系统的全局变量,设置了会影响所有的调用,不能这么干,你可以用一个ThreadLocal把这些参数存起来,有一个老帖子关于它的争论,希望能够帮助到你:http://www.iteye.com/problems/20549
2013年4月22日 15:13
-
这个问题我也遇到过,是用Authenticator.setDefault()方法的时候,不知道是不是线程安全的,所以没敢用。
Authenticator.setDefault()跟System.setProperty()应该差不多,文档没说线程安全,而且看源码有不少synchronized,却没有ThreadLocal,所以猜测应该不是线程安全的。
如果猜测错误,恳请高手解惑!
如果不是线程安全的,这俩玩意儿如何在多线程环境中使用呢?
如果不能解决此问题,这俩玩意儿岂不是鸡肋。。。2013年4月22日 15:08
相关推荐
在多线程编程中,线程间通信是指不同线程之间传递数据或消息的过程。常见的通信方式包括: 1. **事件和委托:** 可以使用事件和委托机制来实现线程间的异步通信。 ```vbnet Imports System.Threading ...
System.setProperty("org.apache.commons.logging.LogFactory", "org.apache.commons.logging.impl.SimpleLogFactory"); System.setProperty("log4j.rootLogger", "DEBUG, stdout"); ``` 总的来说,解决"The ...
System.setProperty("rxtx.SerialPorts", "/dev/ttyS0"); // 对于Linux System.setProperty("rxtx.SerialPorts", "COM1"); // 对于Windows ``` 2. 初始化SerialPort对象: ```java CommPortIdentifier ...
props.setProperty("sun.net.client.defaultConnectTimeout", "5000"); // 设置连接超时,单位毫秒 props.setProperty("sun.net.client.defaultReadTimeout", "5000"); // 设置读取超时,单位毫秒 ``` 此外,考虑到...
- 调整连接池大小以优化性能,可通过System.setProperty("http.maxConnections", "5")设置。 以上就是使用HttpURLConnection在Android应用中访问网络的基本步骤和关键知识点,开发者可以根据实际需求进行调整和...
System.setProperty("webdriver.ie.driver", "path/to/IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(); ``` 这里,“path/to/IEDriverServer.exe”应替换为实际的文件路径。 4. **...
29.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。 public void test(int i) { lock(this) { if (i>10) { i--; test(i); } } } 答:不会发生死锁,(但...
Qt的元对象系统(Meta-Object-System)提供了对象之间通信的信号与槽机制、运行时类型信息和动态属性系统。 元对象系统由以下三个基础组成: 1.QObject类是所有使用元对象系统的类的基类; 2.在一个类的private部分...
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者...
对于更复杂的跨线程通信,可以使用`Control.BeginInvoke`或`Control.Invoke`方法,或者通过`System.Threading`命名空间下的队列类,如`ConcurrentQueue`。 每种方法都有其适用场景,选择哪种取决于你的具体需求,...
题目中提到了关于多线程安全的问题,但未给出具体代码。在多线程环境中,需要特别注意同步和锁定机制,避免竞态条件等问题的发生。 #### 10. .NET Remoting 与 WebService 的对比 题目中比较了 .NET Remoting 和 ...
3. **通信方式**:线程间通信相对简单,进程间通信复杂。 4. **并发度**:线程可以提供更高的并发度。 ### Redis 缓存机制与应用场景 #### Redis 缓存机制 Redis 作为一款内存数据库,可以高效地存储和检索数据。...
JSP动作元素包括、、<jsp:setProperty>、等,用于在页面中执行动态操作。 #### 35. JSP页面组成元素 JSP页面由HTML标记、Java脚本代码、JSP指令、JSP动作元素、注释等组成。 #### 36. 请求和重定向的区别 请求...
3. **多线程**:`java.lang.Thread`和`java.util.concurrent`包提供了创建和管理线程的工具,如`ExecutorService`、`Semaphore`等。 4. **异常处理**:`java.lang.Throwable`及其子类如`Exception`和`Error`,是...
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver.exe"); WebDriver driver = new ChromeDriver(); ``` 2. **导航**: 使用`driver.get()`方法打开目标URL。 ```java driver.get(...
12. **属性系统(Properties System)**:使用`Q_PROPERTY`宏声明对象的可读写属性,并配合`QObject::setProperty`和`QMetaObject::property`进行操作。 13. **样式表(QSS,Qt Style Sheets)**:类似CSS,用于...
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); ``` 接着,我们可以使用WebDriver提供的API来操作浏览器,如打开URL、查找元素、执行点击、输入...
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类来...