[Java多线程的线程池相关]

版权声明:辛辛苦苦码字,你们转载的时候记得告诉我 https://blog.csdn.net/dxyinme/article/details/90743223

当Java要开始多线程的时候,个人感觉直接start线程对于线程的管理非常不利,然后就去查了一下有没有比较方便的线程管理办法。
查了一下好像还真有,主要是这两个库:
在这里插入图片描述
有下面这4种线程池类型

newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

你可以通过如下方式新建一个线程池:

ExecutorService xxx = Executors.newCachedThreadPool();

你还可以通过

xxx.isTerminated()

判断线程池中的线程是否全部终止。

可以通过

xxx.shutdown()

向线程池xxx发送终止进程信号,之后当xxx中现有的所有线程不会受到影响,但是之后不能再往xxx中execute新的线程了;xxx中线程全部结束之后,xxx.isTerminated()会被设置为True。

xxx.execute(new Runnable())

将一个线程放到xxx线程池中执行。

参考:
https://www.cnblogs.com/ruiati/p/6134131.html

猜你喜欢

转载自blog.csdn.net/dxyinme/article/details/90743223