一、JUC(java.util.concurrent)并发编程
Jdk5开始出现
JUC:让开发者在多线程编程中更加简单、方便
通过JDK内置了一些类、接口、关键字,补充完善了JDK对于并发编程支持的“短板”
提供了并发编程、线程安全相关的类和接口,方便并发编程
1. JUC中的类和接口
线程创建中使用的 Callable接口 与 Future接口都属于JUC中的内容
查看JUC中的类与接口
- 找到java.util.concurrent包
- 选中concurrent点击右键,选择Diagrams
- 选择show Diagram
2. 主要包含的功能
Executor:线程池
Atomic:原子操作类
Lock:锁
Tools:信号量工具类
二、线程池
1. 为什么使用线程池:
线程的创建和销毁,会消耗一定的系统资源。如果频繁的新建和销毁线程,可能会大量的消耗系统资源。
如何在需要频繁的创建、销毁线程的场景下保证系统响应时间更快,减少资源消耗? --- 使用线程池。
2. 什么是线程池:
内容的一块空间。这块空间中存放了一些实例化好的线程对象。
当代码中需要使用线程时直接从线程池获取。当代码中线程执行结束或需要销毁时,把线程重新放入回到线程池,而不是让线程处于死亡状态。
3. 线程池特点:
3.1 优点:
- 降低系统资源的消耗。通过重用线程对象,降低新建和销毁线程产生的资源消耗
- 提高系统的响应速度。直接获取内存中的线程对象,减少新建线程的时间。
- 提供线程的可管理性。