java语言

Java中Executor接口用法

时间:2024-08-06 03:15:07 java语言 我要投稿
  • 相关推荐

Java中Executor接口用法大全

  本文实例讲述了Java中Executor接口用法。分享给大家供大家参考。具体如下:

  1.Java中Executor接口的定义

  public interface Executor { void execute(Runnable command);}

  2.Executors以下静态工厂方法创建一个线程池:

  a) newFixedThreadPool:创建一个定长的线程池。达到最大线程数后,线程数不再增长。

  如果一个线程由于非预期Exception而结束,线程池会补充一个新的线程。

  b) newCachedThreadPool:创建一个可缓存的线程池。当池长度超过处理需求时,可以回收空闲的线程。

  c) newSingleThreadPool:创建一个单线程executor。

  d) newScheduledThreadPool:创建一个定长的线程池,而且支持定时的以及周期性的任务执行。

  类似于Timer。但是,Timer是基于绝对时间,对系统时钟的改变是敏感的,而ScheduledThreadPoolExecutor只支持相对时间。

  3.对比Timer类的应用总结

  1) Timer是创建唯一的线程来执行所有的timer任务。如果一个任务超时了,会导致其他的TimerTask时间准确性出问题。

  2) 如果TimerTask抛出uncheck 异常,Timer将会产生无法预料的行为。因此,ScheduledThreadPoolExecutor可以完全代替Timer。

  3) 为了解决执行服务的生命周期问题,ExecutorService接口扩展了Executor。线程池将包括3个状态:running,shutting down,terminated。

  4.Callable和Future

  因为Runnable没有返回值,并且不能抛出checked异常,所以Callable是更佳的抽象。(Callable表示无返回值的任务)。

  Future描述了任务的生命周期,并提供了相关的方法来获取任务的结果、取消任务以及检查任务完成或则是否取消。

  5.CompletionService整合了Executor和BlockingQueue的功能。

  其take和poll可以阻塞的获取完成的任务。

  希望本文所述对大家的java程序设计有所帮助。

《Java中Executor接口用法大全.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【Java中Executor接口用法】相关文章:

Java中的多态用法实例分析10-23

Java中ArrayList类的使用用法07-12

介绍Java array接口10-06

Java图形用户接口09-04

PHP面向对象程序设计之接口用法07-08

php中fsockopen用法实例06-20

php中引用的用法分析06-22

Linux中source命令的用法06-15

Java中定义与声明的区别05-21

浅谈Java中的弱引用10-27

Java中Executor接口用法大全

  本文实例讲述了Java中Executor接口用法。分享给大家供大家参考。具体如下:

  1.Java中Executor接口的定义

  public interface Executor { void execute(Runnable command);}

  2.Executors以下静态工厂方法创建一个线程池:

  a) newFixedThreadPool:创建一个定长的线程池。达到最大线程数后,线程数不再增长。

  如果一个线程由于非预期Exception而结束,线程池会补充一个新的线程。

  b) newCachedThreadPool:创建一个可缓存的线程池。当池长度超过处理需求时,可以回收空闲的线程。

  c) newSingleThreadPool:创建一个单线程executor。

  d) newScheduledThreadPool:创建一个定长的线程池,而且支持定时的以及周期性的任务执行。

  类似于Timer。但是,Timer是基于绝对时间,对系统时钟的改变是敏感的,而ScheduledThreadPoolExecutor只支持相对时间。

  3.对比Timer类的应用总结

  1) Timer是创建唯一的线程来执行所有的timer任务。如果一个任务超时了,会导致其他的TimerTask时间准确性出问题。

  2) 如果TimerTask抛出uncheck 异常,Timer将会产生无法预料的行为。因此,ScheduledThreadPoolExecutor可以完全代替Timer。

  3) 为了解决执行服务的生命周期问题,ExecutorService接口扩展了Executor。线程池将包括3个状态:running,shutting down,terminated。

  4.Callable和Future

  因为Runnable没有返回值,并且不能抛出checked异常,所以Callable是更佳的抽象。(Callable表示无返回值的任务)。

  Future描述了任务的生命周期,并提供了相关的方法来获取任务的结果、取消任务以及检查任务完成或则是否取消。

  5.CompletionService整合了Executor和BlockingQueue的功能。

  其take和poll可以阻塞的获取完成的任务。

  希望本文所述对大家的java程序设计有所帮助。