為什么運行成這樣,就不向下運行了
線程問題,為什么沒有運行下去,鎖的問題???
翻翻過去那場雪
2018-07-15 11:16:18
TA貢獻1886條經驗 獲得超2個贊
多個線程存在競態條件下,當第一個線程運行了"生產者",隨后你用flag來標識,但是并不是按照你想的那種順序來去消費的,造成flag=false,進不去"消費者",然而下一個循環運行時發現flag=false,就會調用.wait()方法,在當前調用中是不會主動再去調.notify()方法的,導致你這"生產者"也只能調用一次后面就繼續等待了,這樣就產生這出現一個"生產了"的結果...
TA貢獻1777條經驗 獲得超3個贊
mian 方法啟動使用的是同一個move對象. 及兩個線程使用的是同一個鎖。
每次只會有一個線程在執行方法.
所以按照截圖代碼應該不會存在樓主描述的問題才對。。
舉報