`
QING____
  • 浏览: 2233678 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Executors工具类介绍

 
阅读更多

Executors是一个工具类,提供了大量的静态方法,方便我们在线程池中使用。

  •  static Callable<Object> callable(Runnable task):将runnable接口实例转换成Callable接口实例.
  • static ExecutorService newCacheThreadPool():创建一个“按需创建”的线程池,此前创建的线程可用时将重用它们。对于执行那些短期异步任务的程序而言,这些线程池通常可以提高程序的性能;在调用execute方法时(提交任务),如果此时没有线程可用,将会创建一个新的线程来执行此任务;终止并从缓存中移除那些已经有60秒尚未被使用的线程。cachedThreadPool底层使用SynchronousQueue(同步队列,单工模式队列),这个队列的特性就是“单工”,插入到队列的元素必须等待直到有其他线程“获取”位置,有人用“交接模式”形容它。这种队列,是没有实际空间的;同步队列,还支持两种策略:公平策略和非公平策略;公平策略底层基于队列实现,非公平队列基于一个类似stack模式实现。
  • static ExecutorService newFixedThreadPool(int nThreads):创建一个可重用固定线程数的线程池,以共享的无界队列方式运行这些线程。底层通过一个无界的LinkedBlockingQueue来实现。因为LinkedBlockingQueue是无界的,所以,当任务不能被立即消费时,将会被加入队列;无界的队列不会造成任务被rejected。如果线程意外退出,将会创建新的线程补充。
  • static ExecutorService newSingleThreadPool():创建只有一个线程的线程池,队列为底层通过一个无界的LinkedBlockingQueue来实现;如果线程意外退出,将会创建新的线程.
  • static ScheduledExecutorService newSingleThreadScheduledExecutor():创建一个单线程的可延迟执行的线程池服务,底层直接通过ScheduledThreadPoolExecutor实现。
  • static ScheduledExecutorService newScheduledThreadPool(int corePoolSize):创建指定线程数量的线程池服务,底层直接通过ScheduledThreadPoolExecutor实现。底层使用DelayedWorkQueue.

 

分享到:
评论
1 楼 hekuilove 2014-02-20  
草哥威武      

相关推荐

Global site tag (gtag.js) - Google Analytics