本文主要是介绍2.10学习笔记 java任务调度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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。。排列接口,排列后迭代运行。
这篇关于2.10学习笔记 java任务调度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!