「java让线程重复执行」java多线程添加数据重复
本篇文章给大家谈谈java让线程重复执行,以及java多线程添加数据重复对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
Java线程池中的核心线程是如何被重复利用的
因为线程池并不是重复利用一个线程实例,而是在池内每执行一个任务都用new
thread()得到一个新的线程实例。然后用再启动。
在java中什么办法可以让线程停止然后再重新启动它
1.你可以用布尔值来控制是否让线程运行。例:while(boolean isLive){} 当isLive为true线程就运行,否则不运行。
2.你可以用对象。例:while(Object o != null)当对象存在的时候线程就运行,否则不运行!
3.你可以用wait()方法来让线程等待,然后用notify()、notifyAll()在适当的时候唤醒线程、或者唤醒所有在些等待的线程!
例:一个挺不错的例子---吃馒头和做馒头。
一个线程做馒头,做好了放在篮子里(容量为10)。
一个线程吃馒头,从篮子里拿馒头吃(如果篮里有馒头)。
还有一点就是为了看到明显的等待效果,用一个随机数来决定做和吃的速度。这样就不会行成做一个,吃一个,篮子永远装不满的不理想效果!(最好就是做稍快于吃)
这时,当篮子满了,你就应该调用wait()方法来让做的线程等待,让吃的线程将篮子腾出空间放馒头。同时,吃的线程也应该通知做的线程可以做馒头了(就应该调用notify()来唤醒做的线程)。
这个例子应该就是你想要的“停止”后再重新启动吧!
如果你说的是完全停止(死了),那就不行了!
java中一个线程如何执行多次
在线程里使用循环,然后睡眠一段时间再执行。 或者使用 java.util.Timer; java.util.TimerTask; 来设置定时执行任务。
仅供参考
package com.kidd.test.zhidao;
/**
* Hello world!
*
*/
public class Main {
public static void main(String[] args) {
Seed seed = new Seed();
TestRunnable testRunnable = new TestRunnable(seed);
Thread thread = new Thread(testRunnable);
thread.start();
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
seed.setEnd(true);
}
}
class TestRunnable implements Runnable {
private Seed seed;
public TestRunnable(Seed seed) {
super();
this.seed = seed;
}
public Seed getSeed() {
return seed;
}
@Override
public void run() {
while (!seed.isEnd()) {
System.out.println("线程正在执行");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class Seed {
private boolean end;
public boolean isEnd() {
return end;
}
public void setEnd(boolean end) {
this.end = end;
}
}
java让线程重复执行的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java多线程添加数据重复、java让线程重复执行的信息别忘了在本站进行查找喔。