在java中什么办法可以让线程停止然后再重新启动它

2024-12-17 20:34:08
推荐回答(3个)
回答1:

1.你可以用布尔值来控制是否让线程运行。例:while(boolean isLive){} 当isLive为true线程就运行,否则不运行。
2.你可以用对象。例:while(Object o != null)当对象存在的时候线程就运行,否则不运行!
3.你可以用wait()方法来让线程等待,然后用notify()、notifyAll()在适当的时候唤醒线程、或者唤醒所有在些等待的线程!
例:一个挺不错的例子---吃馒头和做馒头。
一个线程做馒头,做好了放在篮子里(容量为10)。
一个线程吃馒头,从篮子里拿馒头吃(如果篮里有馒头)。
还有一点就是为了看到明显的等待效果,用一个随机数来决定做和吃的速度。这样就不会行成做一个,吃一个,篮子永远装不满的不理想效果!(最好就是做稍快于吃)
这时,当篮子满了,你就应该调用wait()方法来让做的线程等待,让吃的线程将篮子腾出空间放馒头。同时,吃的线程也应该通知做的线程可以做馒头了(就应该调用notify()来唤醒做的线程)。
这个例子应该就是你想要的“停止”后再重新启动吧!
如果你说的是完全停止(死了),那就不行了!

回答2:

1.主线程写个循环3次的循环
2.循环体内运行线程,运行完以后调用wait()等待
3.线程在运行,如果出异常notifyAll()唤醒主线程继续循环

回答3:

在线程中添加sleep() 让他睡几秒再运行