public
class
test
system.out.
println
(i);}}
.start()
; timeunit.seconds.
sleep(1
);running =
false
; system.out.
println(1
);}}
程式無法退出。
原因是running值改變沒有被更新到子執行緒(另乙個執行緒)中。
主線程(右) 不會將資料更新到記憶體,而子執行緒(i++)也不會從記憶體中讀取資料,只從l1緩衝層讀取
終止(更新)的方式:
0.runnning用volatile修飾
1.將running放在sleep前
2.在子執行緒中使用running即將他啟用,讓它得以更新比如使用它(輸出,給其他資料賦值)。
3.將boolean型修改為long,條件改為running==1 也是不行,猜測作為條件使用到共享變數時是無法更新資料的
4.將sleep改為timeunit.milliseconds.sleep(1)也能退出;
請大佬指點。
RecyclerView的資料更新問題
相信很多人都應該知道recyclerecyclerview的基本用法,如果不知道,請參考 概覽 好了,假設你已經基本了解了recyclerview的用法,正如上述文章中講的那樣,recyclerview跟listview不一樣,當我們想要更新資料的時候,有兩種情況 1 dataset為list,也通...
vue 非同步資料更新問題
記錄一下出現的問題,資料翻倍 這是復現問題的 data methods console.log 此時的this.allresult this allresult watch mounted 結果 此時你可以看到第二次的資料時 是 第一次的 2倍 mounted 和 watch 都執行 getmess...
關於ViewPager的資料更新問題小結
今天工作中遇到了這個糾結的問題,在viewpager中呼叫pageradapter.notifydatasetchanged 方法,好像沒有任何作用,相應的view也沒有更新資料,根據官方api是這樣解釋的 大概是說明adapter會自動管轄viewpager每一頁 item 的狀態,而notify...