
线程池
文章平均质量分 55
lolxxs
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用线程池的shutdown()使主线程等待子线程执行完所有任务是错误的
主线程给所有的子线程发送中断信号,而子线程当执行完手上的任务的时候就会先去检测是否已经收到了中断信号(其实就是一个布尔型的值,是否被设置了),如果已经检测到中断信号了,则不会去阻塞队列中取出新的任务,所以所有任务是不会执行完毕的。CountDownLatch有一个计数器,子线程负责将计数器减一,主线程负责调用await()等待,当某个子线程将计数器减为0的时候,就会唤醒主线程。Future.get()时是阻塞的,会等待子线程执行完毕主线程才能获取到结果,相当于主线程在等待该子线程。原创 2023-08-28 17:07:10 · 518 阅读 · 0 评论 -
Java Executor接口
版本JDK8(JDK1.8)Executor接口源码重点1.Executor接口只定义了一个方法void execute(Runnable command),用于传递一个任务进去,该任务可以在新线程、线程池中线程或调用线程中执行,具体取决于Executor实现。2.Executor定义的execute(.)方法没有返回值,所以它的扩展接口ExecutorService,里面专门定义了有返回值的submit()方法ExecutorService源码可以看我这篇文章 ExecutorService3原创 2021-10-08 20:57:07 · 332 阅读 · 0 评论 -
Java ExecutorService接口
版本JDK8(JDK1.8)ExecutorService接口源码重点1.ExecutorService接口继承Executor接口,提供了Executor接口的扩展方法Executor源码可以看我这篇文章 Executor2.ExecutorService可以关闭,这将导致它拒绝新任务。 提供了两种不同的方法来关闭ExecutorService。shutdown() 方法允许在终止之前执行以前提交的任务shutdownNow() 方法防止等待的任务启动并尝试停止当前正在执行的任务3.s原创 2021-10-08 21:25:22 · 246 阅读 · 0 评论