ThreadExecutorPool 线程池组件

Posted 立中宵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThreadExecutorPool 线程池组件相关的知识,希望对你有一定的参考价值。

ThreadExecutorPool是使用最多的线程池组件:

Executor是用来执行提交的Runnable任务的对象,并以接口的形式定义,提供一种提交任务(submission task)与执行任务(run task)之间的解耦方式,还包含有线程使用与周期调度的详细细节等。Executor常常用来代替早期的线程创建方式,如new Thread(new(RunnableTask())).start(),在实际中可以用如下的方式来提交任务到线程池里,Executor会自动执行 你的任务.

  1. Executor executor = anExecutor;  
  2. 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 线程池组件的主要内容,如果未能解决你的问题,请参考以下文章

CountDownLatch类的使用

Java 线程池

Java 线程池

Java 线程池

如何在 Cognito 用户池组中添加用户?

AWS Cognito 角色:区分联合身份池角色和用户池组角色