黑马程序员技术交流社区

标题: 关于Jdk1.5后线程池的理解! [打印本页]

作者: 绿影    时间: 2011-11-14 12:53
标题: 关于Jdk1.5后线程池的理解!
仅供参考!
线程池就是一工厂不是,一个工人就是一个Thread,你可以用三种方式(见代码)决定请几个工人干活。如果有活了这些工人就开干(就是线程自动到线程池中去拿任务执行),如果没订单了,就没活可干了工人就休息着吃闲饭。如果你不想他们吃闲饭就赶走。(就用 threadPool.shutdown()关闭线程池)。
  1. //创建固定线程个数的线程池。
  2.             //ExecutorService threadPool = Executors.newFixedThreadPool(3);
  3.             //创建线程个数动态变化的线程池,有多少任务就多少线程,再来则动态增加。
  4.             //ExecutorService threadPool = Executors.newCachedThreadPool();
  5.             //创建单个线程的线程池,这个池子中的这个线程如果死了,就会自动创建一个新的Thread接替他。
  6.             ExecutorService threadPool = Executors.newSingleThreadExecutor();
复制代码

作者: 石宗银    时间: 2011-11-14 13:38
Executors.newFixedThreadPool(3);    固定线程数,随机指派某个线程去 完成当前的任务;当一个线程完了它的任务后,还有新任务没有被接收,则会去接受新任务
Executors.newCachedThreadPool();  动态生成线程来执行任务,,当有线程执行完它的任务后,且还有任务没被分配,则会去执行新任务,,如:有10个任务,可能只生成了
                                    6、7个线程,还有几个任务 是前面中执行完任务的线程在执行

作者: 绿影    时间: 2011-11-21 19:29
石宗银 发表于 2011-11-14 13:38
Executors.newFixedThreadPool(3);    固定线程数,随机指派某个线程去 完成当前的任务;当一个线程完了它 ...

恩 理解更清楚了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2