初识java线程池

一、首先,什么是线程池?
一个线程池管理了一组工作线程,同时它还包括了一个用于放置等待执行任务的队列。
二、如何创建线程池?
线程池可以通过Executors工厂方法来创建,JDK中实现ExecutorService的类有:
- ForkJoinPool
- ThreadPoolExecutor
- ScheduledThreadPoolExecutor
Executor类有以下几种方法来创建ExecutorService:
1. 使用newCachedThreadPool()创建一个ExecutorService , ExecutorService根据需要来创建线程,或者重复使用已有的线程来执行任务
2. 使用newFixedThreadPool(int numberOfThreads )创建一个可重复使用的、固定线程数量的ExecutorService
3. 使用newScheduledThreadPool(int corePoolSize)根据给定时间,延迟时间计划创建ExecutorService
4. newSingleThreadExecutor()创建单个工作线程
5. newSingleScheduledThreadExector()根据时间计划延迟创建单个工作线程
6. newWorkStealingPool()创建一个拥有多个任务队列(以便减少连接数)的ExecutorService
最后,调用Shutdown方法,ExecutorService进入关闭模式
这些类都实现了线程池的抽象
三、线程池包括以下几个部分:
1. 线程池管理器(ThreadPool):用于创建并管理线程池,包括创建线程池、销毁线程池、添加新任务;
2. 工作线程(PoolWorker): 线程池中的线程,在没有任务时处于等待状态,可以循环执行任务;
3. 任务接口(Task): 每个任务必须实现接口,以供工作线程调度任务的执行,它主要规定了任务的入口,任务执行完成后的收尾工作,任务执行状态等;
4. 任务队列(taskQueue): 用于存放没有处理的任务,提供一种缓存机制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值