java——多线程管理(concurrent包)

Posted 东木刀纹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java——多线程管理(concurrent包)相关的知识,希望对你有一定的参考价值。

先上两张图,左边一个是concurrent包下的所有接口,右边是该包下的所有类,其实我们经常用到的接口和类都是少数的,接下来将具体介绍。

1. 常用的接口

Callable: 一个带有返回值的线程接口

Future:用来接收返回值的一个泛型的接口,提供了cancle终止线程的操作

Executor:具体Runnable任务的执行者

ExecutorService:一个线程池的管理者,可以对Runnable和Callable任务进行调度

BlockingQueue:阻塞队列

2. 常用的类

(1) Executors:用来创建线程池的操作

Executors.newFixedThreadPool(n):创建固定大小的线程池

Executors.newCachedThreadPool():创建无界线程池,可以自动的对空闲的(超过60s未使用)线程进行回收和利用

Executors.newSingleThreadExecutor():单个后台线程,可以保证各个任务按照顺序来执行,同一个时间内不会有多个线程是活动的。

(2) Semaphore:一个统计信号量,用来限制可以访问某些资源的线程数目。

使用acquire()函数来占用一个资源

使用release()函数来释放一个资源

 

未完待续。。。。

 

以上是关于java——多线程管理(concurrent包)的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记—多线程(原子类,java.util.concurrent.atomic包,转载)

Java学习笔记—多线程(java.util.concurrent.locks包,转载)

廖雪峰Java11多线程编程-3高级concurrent包-5Atomic

Java学习笔记—多线程(并发工具类,java.util.concurrent.atomic包)

java concurrent包常用类小结

多线程之整体概括