那些遇到过的问题
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 年 前
查看次数:
78 次
最近记录:
2 年 前
相关归档
错误:java:javacTask:源版本8需要目标版本1.8
826
是否保证从LinkedHashMap对象返回键和值的顺序?
154
由于输入结束的jackson解析器,没有要映射的内容
63
用于IO的GoF Decorator模式的用例和示例
54
什么"可以打包本地"是什么意思?(IDEA检查)
51
如何在关机后重用线程池
44
Swift 5 中的引用赋值是原子的吗?
8
Java Swing对JTextArea的多线程访问
7
单独的线程可以更改静态变量吗?
7
构建需要上下文限制的 Airflow DAG
6
难疑归档
为什么Java的+ =, - =,*=,/ =复合赋值运算符需要转换?
3547
在字典中添加新密钥?
2427
找到已安装的npm软件包的版本
2037
如何用Vim中的换行符替换字符?
1870
lodash和下划线之间的差异
1566
如何删除导出的环境变量?
1439
短路Array.forEach就像调用break
1429
在JavaScript中检测"无效日期"日期实例
1381
获取实例的类名?
1303
如何使用sed替换换行符(\n)?
1295