在我的Android應用程序中有一個包含可運行內部類的活動。 從此活動創建/啓動運行內部類的新線程。 該線程執行這個循環:控制Android Java線程
while (run) {
...
}
布爾「運行」的狀態應該從兩個線程來改變。 這就是爲什麼我把它改成了活動課是這樣的:
private static volatile boolean run;
我想知道這是否是控制線程的正確途徑。 兩個線程在內存中使用相同的變量嗎? 由於檢查和設置布爾值都不是cpu的原子操作,有可能,一個線程檢查「運行」而另一個線程正在改變其狀態?
你想做什麼?它能以其他(也許更好)的方式解決嗎? – Kenneth
檢查*或*設置'boolean'是原子。檢查*和*設置'boolean'不是。 –