Java 在一个大型项目中,如何确定一个变量是否应该声明为volatile?

Java 在一个大型项目中,如何确定一个变量是否应该声明为volatile?,java,netbeans,project-management,volatile,Java,Netbeans,Project Management,Volatile,假设我已经接管了一个相当大的项目,它的代码还没有被文档化,线程安全实际上是不存在的。为了主题,让我们假设项目包含不少于100000行代码 如何确定一个变量是否被多个线程访问?我可以确定所有的变量吗?我试图让所有这些变量都不稳定,但找到它们是。。。嗯 Java能找到所有这样的变量吗?我打赌不会-那netbeans呢?有什么方法可以做到这一点吗?如何查找参考资料?另外,让所有字段都变为volatile听起来是一个非常糟糕的主意,但这与问题无关。将字段标记为volatile不会解决您的问题(如果有的话

假设我已经接管了一个相当大的项目,它的代码还没有被文档化,线程安全实际上是不存在的。为了主题,让我们假设项目包含不少于100000行代码

如何确定一个变量是否被多个线程访问?我可以确定所有的变量吗?我试图让所有这些变量都不稳定,但找到它们是。。。嗯


Java能找到所有这样的变量吗?我打赌不会-那netbeans呢?有什么方法可以做到这一点吗?

如何查找参考资料?另外,让所有字段都变为volatile听起来是一个非常糟糕的主意,但这与问题无关。将字段标记为volatile不会解决您的问题(如果有的话)。在出现真正的线程安全问题之前,我不会担心这个问题,评估如何重现该问题,然后采取措施解决它。看起来我们正在寻找一种散弹枪方法,但不幸的是,只有外科手术刀方法来处理线程:-感谢您的评论。看来我还有很多关于线程的知识要学。那么,当问题出现时,我会像往常一样解决。