JavaEE——线程池

线程池

目的是提高效率

直接创建/销毁线程,需要用户态+内核态配合完成,线程池/协程创建和销毁只通过用户态即可,不需要内核态的配合

直接调用api创建/销毁线程,这个过程需要内核完成,但是内核完成的工作很多时候是不太可控的。

通过使用线程池提前把线程都创建好放到用户态代码中写的数据结构里面,后面要用的时候随时从池子里取,用完了再放回池子里,这个过程完全是用户态代码,不需要和内核进行交互

标准库线程池(面试考点)

ThreadPoolExecutor

标准库的线程池把线程分成两类:

1.核心线程(corePoolSize)

2.非核心线程(maximumPoolSize)

线程池会提供一个submit方法往里面添加任务,每个任务都是一个Runnable

任务较多时线程池会创建新线程,但不能超过最大线程数

在实际开发中需要根据实验来找到一个合适大小的值

BlockingQueue线程池的任务队列

线程池会提供submit方法,让其他线程把任务提交给线程池

相当于把任务放到一个队列里保存起来

ThreadFactor工厂模式

threadFactory是标准库中提供用来创建线程的工厂类

RejectedExecutionHandler

拒绝策略就是一个枚举类型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值