0
從主線程,我開始一個子線程 裏面的子線程run()
方法,調用wait()
方法 在main方法調用的子線程的join()
方法,不用通知子線程。線程通知問題
我注意到,主線程以及子線程仍在運行,這是一個已知的行爲?爲什麼?
從主線程,我開始一個子線程 裏面的子線程run()
方法,調用wait()
方法 在main方法調用的子線程的join()
方法,不用通知子線程。線程通知問題
我注意到,主線程以及子線程仍在運行,這是一個已知的行爲?爲什麼?
通過調用wait
,可以阻止子線程直到notify
,並且通過調用join
來阻塞主線程,直到子線程結束。因此你有一個可預見的死鎖。我不會稱這種行爲只是「已知」,而是「按照指定」。
這是一個「死鎖」。 – 2012-12-05 20:19:05
請在這裏發佈代碼。 –
你的意思是線程在調試器中都是「正在運行」嗎?如果是這樣,那是因爲調試器沒有向您顯示線程狀態,而是您是否在調試器中暫停/暫停了線程。 – SamYonnou
當它不在任何同步的上下文中時,你如何調用wait()方法? (至少你沒有提到任何)它應該拋出一個IllegalMonitorStateException。 – clinton