作者goldking521 (阿翔)
看板java
标题[问题] 如何让Thread暂停?
时间Tue Jun 25 14:16:54 2013
最近在写程式遇到一些状况
我宣告了两个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)
1F:推 PsMonkey:不建议使用但是有告诉你要改用啥吧? 06/25 14:27
2F:推 cuteclare:java.util.concurrent.locks.Lock ? 06/25 18:53
3F:→ goldking521:谢谢各位,我在研究看看 06/25 19:32
4F:推 cuteclare:orz 用 lock其实不能让thread停止 只是可以达成原po要的 06/25 20:09
5F:→ jej:two-phase termination模式~ 06/25 20:25
6F:→ jej:在你的thread加一个terminal注记..标明什麽时候要中止.. 06/25 20:27
7F:→ nopeace:放个object去wait(),要resume时再notify() 06/25 21:31
8F:→ goldking521:谢谢各位,我把标题的停止改成暂停好了 06/25 22:38
※ 编辑: goldking521 来自: 122.118.2.139 (06/25 22:39)
9F:→ goldking521:然後看了一下,我的interrupt()会没用,应该是我while 06/25 22:40
10F:→ goldking521:回圈里有sleep的关系,可能我误会interrupt()的用法了 06/25 22:43
11F:→ flowwinds:放个lock然後wait/notify 06/27 23:24