看板 java 關於我們 聯絡資訊
最近在寫程式遇到一些狀況 我宣告了兩個RadioButton(簡稱RB),我想要RB1被按下時,啟動Thread t1, 然後按下RB2時,暫停t1,如果之後又按下RB1,再恢復Thread t1 <code如下> =================t1的部分=========== public void run(){ while(!RB2.isSelected()){ //t1執行緒要做的事 } } =================RB1的部分============== RB1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { t1.start(); } }); 因為看java的文件,stop()、suspend()和resume()已經不建議使用,然後下interrupt() ,t1還是繼續執行,所以想使用while迴圈來暫停thread,不過似乎沒有成功 ,想請問是否有大大可以指導一下,或是給關鍵字去google?謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.14.241 ※ 編輯: goldking521 來自: 140.120.14.241 (06/25 14:27)
PsMonkey:不建議使用但是有告訴你要改用啥吧? 06/25 14:27
cuteclare:java.util.concurrent.locks.Lock ? 06/25 18:53
goldking521:謝謝各位,我在研究看看 06/25 19:32
cuteclare:orz 用 lock其實不能讓thread停止 只是可以達成原po要的 06/25 20:09
jej:two-phase termination模式~ 06/25 20:25
jej:在你的thread加一個terminal註記..標明什麼時候要中止.. 06/25 20:27
nopeace:放個object去wait(),要resume時再notify() 06/25 21:31
goldking521:謝謝各位,我把標題的停止改成暫停好了 06/25 22:38
※ 編輯: goldking521 來自: 122.118.2.139 (06/25 22:39)
goldking521:然後看了一下,我的interrupt()會沒用,應該是我while 06/25 22:40
goldking521:迴圈裡有sleep的關係,可能我誤會interrupt()的用法了 06/25 22:43
flowwinds:放個lock然後wait/notify 06/27 23:24