Java并发编程札记-(六)JUC线程池-01概述

本文介绍了Java并发编程中的线程池概念,强调了线程池通过复用线程减少创建和销毁的资源消耗。讲解了Executor、ExecutorService、ThreadPoolExecutor、ForkJoinPool等核心组件,以及ScheduledExecutorService、CompletionService和Callable、Future的相关概念。线程池通过工作窃取算法提高效率,而ScheduledExecutorService支持定时和周期性任务。后续文章将深入探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面的例子中总是需要线程时就创建,不需要就销毁它。但频繁创建和销毁线程是很耗资源的,在并发量较高的情况下频繁创建和销毁线程会降低系统的效率。线程池可以通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
参考JDK1.8中的相关类,画出下图。
MarkdownPhotos/master/优快云Blogs/concurrency/0201/threadPool.png
(此图不是十分准确,有些类实现了两个接口,这里只展示出了一个)
本章只是简单地介绍下它们,在以后的文章中会选一些最重要的来学习。

Executor
此接口提供一种将任务提交与每个任务将如何运行的机制分离开来的方法。它只提供了execute(Runnable)这么一个方法,用于执行已提交的Runnable任务。

ExecutorService
继承了Executor接口,用于提交一个用于执行的Runnable任务、试图停止所有正在执行的活动任务,暂停处理正在等待的任务、执行给定的任务。

AbstractExecutorService
提供了ExecutorService的默认实现。

ThreadPoolExecutor
提供一个可扩展的线程池实现,是最出名的“线程池”。

ForkJoinPool
JDK1.7中新增的一个线程池,与ThreadPoolExecutor一样,同样继承了AbstractExecutorService。ForkJoinPool是Fork/Join框架的两大核心类之一。与其它类型的ExecutorService相比,其主要的不同在于采用了工作窃取算法(work-stealing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值