Java 线程池学习

Posted youyouhuo

tags:

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

主要有四种方式:

newFixedThreadPool:

创建拥有固定数量的线程池,用于线程的重用。在任何时候都最多有指定个数的线程在运行。当提交的任务多于指定的数量时,新提交的任务需要进行等待,直到原有任务运行完成。

但是请注意,如果单个线程关闭前的执行过程中出现故障,由于终止,如果需要执行后续任务,将会有新取而代之

当线程池调用shutdown后才会停止。

newSingleThreadExecutor:

创建一个只有一个线程的线程池。(注意:但是请注意,如果单个线程关闭前的执行过程中出现故障,由于终止,如果需要执行后续任务,将会有新取而代之)任务保证是顺序执行的,在任何时候都只有一个线程在池中。和其他的比如newFixedThreadPool(1)不同的是,可以无须重新配置就能使用别的线程。

 

newCachedThreadPool:

创建一个可以线程池,如果需要的话,在池中可以创建足够多的线程,同时如果可以的话,也会重复使用以前构造的线程。这个线程池可以极大的提高那种短时间执行的异步任务的执行效率。如果不存在可重用的线程,那么会重新创建一个,并且添加到池中。如果一个一个线程60秒还没有被使用,那么将会被停止并且从池中移除。

newScheduledThreadPool:

创建一个定长线程池,支持递给你是以及周期性任务的执行。

 

其他还有:

newSingleThreadScheduledExecutor:

 

创建只有单个线程的线程池,线程定时周期性的执行任务。

newWorkStealingPool:

创建保持足够的线程来支持给定的并行级,并且可以使用多个队列来降低争用一个线程池。


等等。

 

以上是关于Java 线程池学习的主要内容,如果未能解决你的问题,请参考以下文章

java线程池总结

Java线程池源码阅读

聊聊面试中的 Java 线程池

Java深入学习13:Java线程池

Java线程池学习总结

线程池那些事儿