ThreadExecutorPool 线程池组件
Posted 立中宵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThreadExecutorPool 线程池组件相关的知识,希望对你有一定的参考价值。
ThreadExecutorPool是使用最多的线程池组件:
Executor是用来执行提交的Runnable任务的对象,并以接口的形式定义,提供一种提交任务(submission task)与执行任务(run task)之间的解耦方式,还包含有线程使用与周期调度的详细细节等。Executor常常用来代替早期的线程创建方式,如new Thread(new(RunnableTask())).start(),在实际中可以用如下的方式来提交任务到线程池里,Executor会自动执行 你的任务.
- Executor executor = anExecutor;
- executor.execute(new RunnableTask1());
我发现一个案例:
我的疑问:
1- latch 就是作为这个线程类的 入参?根本没有用到的地方,仅仅是父类构造方法里传入了latch参数:
public BaseHealthChecker(String serviceName, CountDownLatch latch)
_latch.countDown();//父类里run()这个和 Excecutor里size有啥关系??
下面是 主启动类里面设置线程池的地方,和上面的countDown有啥关系?
//Start service checkers using executor framework
Executor executor = Executors.newFixedThreadPool(_services.size());
这里循环里面return false是我特别不能理解的?为什么在方法的最后又返回true???
还有著名的await方法:
//Now wait till all services are checked
_latch.await(); //这个和 Excecutor两回事哈,这个就是锁--计数!!
以上是关于ThreadExecutorPool 线程池组件的主要内容,如果未能解决你的问题,请参考以下文章