java.util.concurrent.Executors 类
来源:互联网 发布:淘宝装修代码怎么使用 编辑:程序博客网 时间:2024/05/20 03:44
java.util.concurrent.Executors 类
此包中所定义的 Executor
、ExecutorService
、ScheduledExecutorService
、ThreadFactory
和 Callable
类的工厂和实用方法。此类支持以下各种方法:
- 创建并返回设置有常用配置字符串的
ExecutorService
的方法。 - 创建并返回设置有常用配置字符串的
ScheduledExecutorService
的方法。 - 创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
- 创建并返回
ThreadFactory
的方法,它可将新创建的线程设置为已知的状态。 - 创建并返回非闭包形式的
Callable
的方法,这样可将其用于需要 Callable 的执行方法中。
从一下关键类可以看出,Executors 这个工具类的作用是非常大的。建立threadpool,建立threadFactory等都最好通过此类。
ExecutorService
一个
ExecutorService
,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors
工厂方法配置。public interface ThreadFactory
根据需要创建新线程的对象。使用线程工厂就无需再手工编写对 new Thread
的调用了,从而允许应用程序使用特殊的线程子类、属性等等。
此接口最简单的实现就是:
class SimpleThreadFactory implements ThreadFactory { public Thread newThread(Runnable r) { return new Thread(r); } }
Executors.defaultThreadFactory()
方法提供了更有用的简单实现,即在返回线程前将已创建线程的上下文设置为已知的值。ThreadPoolExecutor
个 ExecutorService
,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors
工厂方法配置。
线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。每个ThreadPoolExecutor 还维护着一些基本的统计数据,如完成的任务数。
为了便于跨大量上下文使用,此类提供了很多可调整的参数和扩展钩子 (hook)。但是,强烈建议程序员使用较为方便的 Executors
工厂方法 Executors.newCachedThreadPool()
(无界线程池,可以进行自动线程回收)、Executors.newFixedThreadPool(int)
(固定大小线程池)和Executors.newSingleThreadExecutor()
(单个后台线程),它们均为大多数使用场景预定义了设置。否则,在手动配置和调整此类时,必须遵循一定的原则。
阅读全文
0 0
- java.util.concurrent.Executors 类
- java.util.concurrent.Executors 类
- java.util.concurrent.Executors 类
- java.util.concurrent.Executors
- java.util.concurrent.Executors学习
- java.util.concurrent.Executors学习
- java.util.concurrent.Executors 多线程
- java.util.concurrent.Executors应用
- JDK源码阅读 java.util.concurrent.Executors相关分析
- java.util.concurrent 包中Executor与Executors的区别
- java.util.concurrent 包中Executor与Executors的区别
- java.util.concurrent包中线程池Executors的使用
- 聊聊高并发(四十四)解析java.util.concurrent各个组件(二十) Executors工厂类
- java.util.concurrent.TimeUtil类
- 【java】 java.util.concurrent
- java.util.concurrent.atomic 类包详解
- java.util.concurrent.Future 类基础
- java.util.concurrent.Future 类基础
- isNaN不一定准(Effective JavaScript 编写高质量JavaScript代码的68个有效方法)
- CMake快速上手笔记
- HihoCoder
- 心情
- cocos2dx lua 再谈实现EditBox输入框
- java.util.concurrent.Executors 类
- fatal error C1083: Cannot open include file: 'streambuf': No such file or directory解决方案
- java异常处理的五个关键字
- 多线程 竞态条件与临界区
- Java反射
- linux基础(十三)软件安装rpm和yum
- 这是博客开通的时刻
- 结构体难点总结
- Android studio 快捷键使用