ScheduledThreadPool

使用延迟线程池可以指定任务在特定的时延之后执行。下面是一个例子:
package wyf.jc;
import java.util.concurrent.*;
class MyScheduledTask implements Runnable{
private String tname;
public MyScheduledTask(String tname){
this.tname=tname;
}
public void run(){
System.out.println(tname+"任务时延2秒执行!!!");
}
}
public class sample17_4 {
/**
* @param args
*/
public static void main(String[] args) {
ScheduledExecutorService scheduledThreadPool=Executors.newScheduledThreadPool(2);
ScheduledExecutorService singScheduledThreadPool=Executors.newSingleThreadScheduledExecutor();
MyScheduledTask mt1=new MyScheduledTask("mt1");
MyScheduledTask mt2=new MyScheduledTask("mt2");
//以scheduledThreadPool启动mt1任务执行
scheduledThreadPool.schedule(mt1,2,TimeUnit.SECONDS);
//用singScheduledThreadPool启动mt2
singScheduledThreadPool.schedule(mt2, 2000, TimeUnit.MILLISECONDS);
scheduledThreadPool.shutdown();
singScheduledThreadPool.shutdown();
}
}
运行结果如下:
mt1任务时延2秒执行!!!
mt2任务时延2秒执行!!!

注意:
在程序运行2秒后,才会有结果显示,说明线程在2秒后执行的。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bluesky_0205/archive/2008/07/26/2713175.aspx

原文地址:https://www.cnblogs.com/macula7/p/1960468.html