那些遇到过的问题
Linux
C
C++
Python
Vue.js
Nginx
SQL
NoSQL
kubernetes
如何知道特定的Java类是否是线程安全的?
fir*_*y_0
-1
java
multithreading
thread-safety
是否所有不在 java.util.concurrent 下的类在多线程环境中都不安全?
如果第一点是错误的,你如何知道一个特定的类是否是线程安全的?
小智
5
声称不在 java.util.concurrent 下的所有类在 Java 多线程环境中都是不安全的说法是不准确的。一个类是否是线程安全的取决于它的设计以及它如何处理多个线程的并发访问。Java 的 java.util.concurrent 包包含一组经过显式设计和测试以在多线程环境中正常工作的类。然而,Java 中还有许多其他类,无论是在标准库中还是在自定义代码中,如果正确使用并具有适当的同步机制,则可以在多线程环境中安全地使用它们。这些类可能没有明确标记为“线程安全”,但只要采取正确的预防措施,它们仍然可以安全地使用。
java.util.concurrent 中的类明确设计用于多线程使用,并非所有其他类本质上都是不安全的。您应该仔细查看类所使用的
文档、源代码和同步机制,以确定它在多线程环境中使用是否安全。
依靠源代码来告诉您一个类是否是线程安全的是值得怀疑的。如果 javadoc 没有提到线程安全,那么 Java SE 类的(未记录的)线程安全特性*可能*从一个版本更改为下一个版本。
(5认同)
归档时间:
2 年,9 月 前
查看次数:
78 次
最近记录:
2 年,9 月 前
相关归档
如何在Java中将int []转换为List <Integer>?
347
迭代字符串中所有字符的最快方法
153
如何为System.out.println输出颜色?
118
如何将测试覆盖率添加到私有构造函数?
106
如何将XML转换为java.util.Map,反之亦然
65
Java多线程概念和join()方法
57
C#相当于Java的Thread.setDaemon?
25
使用QThreadPool时如何做QObject :: moveToThread()?
7
你如何在C#中获得正在运行的线程列表?
6
从MVC运行短期后台任务
6
难疑归档
如何使用正则表达式验证电子邮件地址?
3201
如何在jQuery中选择具有多个类的元素?
1985
如何将多行中的文本连接成SQL Server中的单个文本字符串?
1813
如何在C#中生成随机int数?
1792
Dockerfile中CMD和ENTRYPOINT有什么区别?
1484
确定整数平方根是否为整数的最快方法
1403
如何使用Sublime Text 2重新格式化HTML代码?
1282
虚拟成员在构造函数中调用
1270
UnicodeEncodeError:'ascii'编解码器无法对位置20中的字符u'\ xa0'进行编码:序数不在范围内(128)
1222
如何查看运行我的脚本的Python版本?
1099