我有一个正在运行的线程:
public boolean shouldStopThread = false;
new Thread(new Runnable() {
@Override
public void run() {
try {
if(!shouldStopThread )
{
// Do my stop here
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
问题是当我将 boolean 值从 false
更改为 true
时,线程内未检测到更改。
如何获取线程内的 boolean 值来检测更改?
最佳答案
因为你的 boolean 值不是 volatile
,不保证在所有线程中立即更改。
如果将其声明为 volatile
,则可以保证每次更改该值时,所有线程都可以看到它。
关于java - 如何检查线程内主线程的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44300944/