我有一种情况,每分钟运行一次线程1,每小时运行一次线程2。我怎样才能做到这一点。
目前我有一个工作代码可以在每分钟后运行 thread1。
主要方法
static void main(string args[]){
orderListner thread1 = new orderListner();
thread1.start();
}
线程1
public static void orderListner extends thread{
public void run(){
while(true){
process();
thread.sleep(60000);
}
}
}
现在我需要为每小时运行一次的结果启动新线程。我如何同时实现这个(线程1将连续运行,线程2应该每小时启动)
最佳答案
我建议您使用ScheduledExecutorService
集中这些任务。
public final class ScheduledExecutorServiceDemo {
private static final ScheduledExecutorService exec =
Executors.newScheduledThreadPool(2);
public static void main(String[] args){
// Schedule first task
exec.scheduleAtFixedRate(new Runnable(){
@Override
public void run() {
// do stuff
}}, 0, 1, TimeUnit.MINUTES);
// Schedule second task
exec.scheduleAtFixedRate(new Runnable(){
@Override
public void run() {
// do stuff
}}, 0, 1, TimeUnit.HOURS);
}
}
关于java - 以不同的 sleep 时间同时运行两个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7114215/