按照JDK文档的描述,
ThreadPoolExecutor中有方法setCorePoolSize()和setMaximumPoolSize来设置corePoolSize和maximumPoolSize的大小,
但是在实际应用中想实时修改池的线程数,得有一定的条件,特别是要减少线程数,
而如果实际应用中需要使用ScheduledThreadPoolExecutor来安排任务,同时需要新安排的任务数又非常多,这时要即时动态线程池的大小,就几乎不可能了,因为ScheduledThreadPoolExecutor用的是LinkedBlockingQueue。这时可以按照JDK的方式实现一个自己的ScheduledThreadPoolExecutor,
首先,稍微修改一下JDK的ThreadPoolExecutor就能实现一个自己的ThreadPoolExecutor,
有了自己ThreadPoolExecutor,就可以继承它来实现自己的ScheduledThreadPoolExecutor了(再原本照抄JDK的ScheduledThreadPoolExecutor的实现就可以了^_^)。
终于有了符合自己需要的ScheduledThreadPoolExecutor了,现在用它来每秒运行1000个任务,还需要每个小时改变并发任务数(50~200之间的随机值),至少要维持30天。
ThreadPoolExecutor的corePoolSize和maximumPoolSize
原文:http://www.cnblogs.com/xiohao/p/4861163.html