newScheduledThreadPool

来源:互联网 发布:学生选课系统java实现 编辑:程序博客网 时间:2024/06/04 18:52
  1. 这是一个可以根据时间对线程进行调度的线程池,直接看示例
public class AddThread  implements Runnable{    int sum=0;    @Override     synchronized public void run() {        System.out.println(Thread.currentThread().getName()+":"+System.currentTimeMillis()/1000);        // TODO Auto-generated method stub            for(int i=1;i<=1000;i++)            {               sum++;               }    }}

主函数

public class ScheSerDemo {    public static void main(String[] args) {        // TODO Auto-generated method stub     ScheduledExecutorService ses=Executors.newScheduledThreadPool(10);     AddThread add=new AddThread();     ses.scheduleAtFixedRate(add, 0, 2, TimeUnit.SECONDS);  //没有延迟,2s执行一次任务     ses.scheduleAtFixedRate(add, 1, 2, TimeUnit.SECONDS);   //1s后开始执行任务,2s执行一次     //由时间分析可得任务1执行三次,任务2执行2次,故sum=5000     try {        Thread.sleep(5000);    } catch (InterruptedException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }     System.out.println(add.sum);    }}
阅读全文
0 0