「java让线程重复执行」java多线程添加数据重复

博主:adminadmin 2023-03-18 00:35:08 583

本篇文章给大家谈谈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让线程重复执行的信息别忘了在本站进行查找喔。