如何暂停某些Thread的执行。我有Thread t,我有两个按钮,PAUSE和CONTINUE。在暂停时我需要暂停线程执行并继续从之前停止的点开始执行线程。把什么放在听众身上?
答案 0 :(得分:8)
Java中的线程是合作的,这意味着你不能强制线程停止或暂停,而是向线程发出你想要的信号和线程(=你的逻辑)自己做的。
使用synchronized,wait()和notify()。
synchronized
块内。wait()
。 commonObject.notify()
。答案 1 :(得分:0)
我想你可能想看一下针对java.lang.Object的wait()和notify()方法
答案 2 :(得分:0)
等待和等待你可以打电话。等待听起来更接近你想要的。为什么需要暂停某些线程的执行?如果它不是作业,那么可能还有其他解决方案。
答案 3 :(得分:0)
与线程池相同的逻辑。线程在池中的位置,直到它们被调用以执行提交到池的某些操作
答案 4 :(得分:0)
你可以试试这个:
private boolean isPaused = false;
public synchronized void pause(){
isPaused = true;
}
public synchronized void play(){
isPaused = false;
notyfyAll();
}
public synchronized void look(){
while(isPaused)
wait();
}
public void run(){
while(true){
look();
//your code
}