Java SE5的java.util.concurrent包中的执行器(Executor)将为你管理Thread对象,从而简化了并发编程。Executor在客户端和执行任务之间提供了一个间接层,Executor代替客户端执行任务。Executor允许你管理异步任务的执行,而无须显式地管理线程的生命周期。Executor在Java SE5/6中时启动任务的优选方法。Executor引入了一些功能类来管理和使用线程Thread,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等

创建线程池

Executors类,提供了一系列工厂方法用于创先线程池,返回的线程池都实现了ExecutorService接口。

public static ExecutorService newFixedThreadPool(int nThreads)

创建固定数目线程的线程池。

public static ExecutorService newCachedThreadPool()

创建一个可缓存的线程池,调用execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。

public static ExecutorService newSingleThreadExecutor()

创建一个单线程化的Executor。

public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)

创建一个支持定时及周期性的任务执行的线程池,多数情况下可用来替代Timer类。

见类图,接口Executor只有一个方法execute,接口ExecutorService扩展了Executor并添加了一些生命周期管理的方法,如shutdown、submit等。一个Executor的生命周期有三种状态,运行 ,关闭 ,终止。

Callable,Future用于返回结果

Future<V>代表一个异步执行的操作,通过get()方法可以获得操作的结果,如果异步操作还没有完成,则,get()会使当前线程阻塞。FutureTask<V>实现了Future<V>和Runable<V>。Callable代表一个有返回值得操作。

实例:并行计算求和

最新文章

  1. 如何数据库表数据导出到excel中
  2. MATLAB-RSP 随笔
  3. libssh2 的集成与应用
  4. win7下环境搭建
  5. How to bind to data when the DataContext is not inherited【项目】
  6. python 快速入门
  7. 【转】Android 最火框架XUtils之注解机制详解
  8. 开箱即用 - jwt 无状态分布式授权
  9. postgresql 添加uuid扩展
  10. Springboot 配置类( @Configuration) 不能使用@Value注解从application.propertyes中加载值以及Environment为null解决方案
  11. 如何实现javascript js 类命名空间的写法
  12. 编译安装centos7 php7.2 mysql5.7 nginx1.9.9
  13. FreeSWITCH Git版本管理
  14. mass种子模块看完了
  15. HDUOJ---Piggy-Bank
  16. 为什么手机无法执行应用? Values之谜
  17. UEditor前端配置项说明
  18. 【云计算】OpenStack qcow2镜像如何转化为Docker镜像?
  19. jQuery UI dialog 参数说明
  20. Javascript 自定义输出

热门文章

  1. poj 2739(筛法求素数)
  2. hdu 5961 传递 (2016ccpc 合肥站 A题)
  3. 【rope】bzoj1269 [AHOI2006]文本编辑器editor
  4. Android内存优化8 内存检测工具2 LeakCanary——直白的展现Android中的内存泄露
  5. JS isNaN()函数
  6. [Git] git revert ( revert commit 和 revert merge)
  7. OpenShift应用镜像构建(1) S2I tomcat 镜像定制
  8. 一步一步在Windows下搭建React Native Android开发环境
  9. Android权限操作之uses-permission详解
  10. SQL_MODE设置讲解