2.10学习笔记 java任务调度

来源:互联网 发布:linux cpu使用率版本 编辑:程序博客网 时间:2024/05/17 09:03

http://www.ibm.com/developerworks/cn/java/j-lo-taskschedule/


java任务调度可以使用:

  • Timer
  • ScheduledExecutor
  • 开源工具包 Quartz
  • 开源工具包 JCronTab以上是根据时间定时执行的,下面有一个简单的不断读栈线程并执行的调度:

    http://lavasoft.blog.51cto.com/62575/1036186/

    主要代码:

    /** * 总调度程序 (包括协作生产) * * @author leizhimin 12-10-23 下午4:18 */ public class TaskPool extends Thread {         private String poolname;         private ThreadPoolExecutor pool = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);         public TaskPool(String poolname) {                 this.poolname = poolname;         }         @Override         public void run() {                 System.out.println(poolname + ":池中的当前线程数getPoolSize()=" + pool.getPoolSize());                 int i = 0;                 while(true){                         int x = pool.getQueue().size(); //                        System.out.println("返回核心线程数="+pool.getCorePoolSize());                         System.out.println("返回此执行程序使用的任务队列="+pool.getQueue().size());                         if(x>=5)                                 try {                                         Thread.sleep(10L);                                         continue;                                 } catch (InterruptedException e) {                                         e.printStackTrace();                                 }                         System.out.println(poolname + "该加入任务了");            //生产过程                         for(int k =i+10;i<k;i++){                                 pool.submit(new MyTask(i));                         }                 }         }         public static void main(String[] args) {                  new TaskPool("pool1").start();         } } 

    这个调度是随机的,如果有优先顺序区分的话,可以让实现comp。。排列接口,排列后迭代运行。





  • 0 0
    原创粉丝点击