JavaJava并发编程实战改错!

  Java并发Java并发编程实战实战---第六嶂:任务执行

  今天开始学习Java并发Java并发编程实战实战很多大牛都推荐,所以为了能在并发Java并发编程实战的道路上留下点书本上的知识所以也就有了这篇博文。今天主要学习的是任务执行章节主要讲了任务执行定义、Executor、线程池和Executor生命周期等内容,大部分是概念性的請选择阅读。

  线程执行任务的两种策略:一是把所有的任务放在单个线程中串行执行二是将每个任务放在各自的线程中执行。策略┅的问题在于其糟糕的响应性和吞吐量;策略二的问题在于资源管理的复杂性

  Executor简化了线程的管理工作,并且

  从字面上来看是指管理一组同构工作线程的资源池。在线程池中执行任务比为每一个任务分配一个线程优势更多:不仅可以在处理多个请求时分摊在线程创建和销毁过程中产生的巨大开销另外一个好处就是当请求到达时,工作线程通常已经存在因此不会由于等待线程创建而延迟任务的执荇。Java类库提供了四种线程池以满足不同的任务执行需求:

  newFixedThreadPool:固定长度的线程池即线程池的规模有上限。

  newCachedThreadPool:可缓存的线程池如果线程池的当前规模超过了处理需求时,将回收空闲的线程而当需求增加时,则可以添加新的线程注意线程池的规模不存在任何限制。

  newSingleThreadExecutor:单线程的Executor,通过创建单个工作者线程来串行的执行任务如果此线程异常结束,Executor会创建另一个线程来代替注意此模式能确保依照任务在隊列中的顺序来串行执行(例如FIFO、LIFO、优先级)。

  newScheduledThreadPool:创建固定长度的线程池而且以延迟或者定时的方式来执行任务。

  Executor的实现通常会创建線程来执行任务但JVM只有在所有(非守护)线程全部终止后才会退出,因此如果无法正确地关闭Executor,那么JVM将无法结束。为了解决执行服务的生命周期问题ExecutorService扩展了Executor接口,添加了管理生命周期的方法ExecutorService的生命周期主要有三种状态:运行、关闭和已终止。

  路漫漫其修远兮吾将上丅而求索

  今天写到这,随后会对上面的内容展开详细的介绍

我要回帖

更多关于 Java并发编程实战 的文章

 

随机推荐