1
4
FindBugs 可以找到线程同步不一致的代码部分,即在一个位置同步对字段的访问,但在另一个位置不同步。它还可以对 JCIP annotations 但我相信目前只检查了@immutable。 我不知道有什么静态分析工具可以自动捕捉到这个特定的情况,但我确信有一个存在。 |
2
0
这是一个经典的问题,叫做 double checked locking problem .
问题是你有一个
race condition
因为你要检查
这样做的方式是,内部类在被引用(这会使您延迟加载)之前不会被初始化,并且加载类是一个原子操作和线程安全操作。 然而,还有其他有效的解决方案。 |
3
0
虽然这个问题被问到或回答已经很久了,但今天我在谷歌上搜索时遇到了这个问题。
www.consemplateltd.com,他们开发了先进的静态分析工具。但它不是免费的。
http://www.checkthread.org/index.html ,这是OpenSource项目,您可能希望看到示例 here |
Eric · fgets_unlocked()用于多线程读取不同文件 2 年前 |
RoyGNEU · 堆上的专用std::Vector是线程安全的吗? 2 年前 |
JaiK · 在c中使用线程或队列写入文件# 6 年前 |
Catalin Ghita · 如何以安全线程对象为值初始化哈希表? 6 年前 |
Juan JuezSarmiento · C++删除对象,是否锁定? 6 年前 |
Missa · 两个不同线程正在处理原子NSMutableArray 6 年前 |
user5682282 · 从其他线程读取值 6 年前 |