当前位置:网站首页>Use the executors class to quickly create a thread pool
Use the executors class to quickly create a thread pool
2022-04-23 14:14:00 【pureluckyfish】
Executors Class Executor、ExecutorService、ScheduledExecutorService、ThreadFactory and Callable Class factory methods and utility methods . This class supports the following methods :
One 、 Introduction to methods in this class
1. Static methods for creating various thread pools , The return value is ExecutorService
Method | describe |
newCachedThreadPool() | Create a cache thread pool , Threads in the thread pool will survive 60s |
newCachedThreadPool(ThreadFactory threadFactory) | Use the specified factory class , Create a cache thread pool , Threads in the thread pool will survive 60s |
newFixedThreadPool(int nThreads) | Create a thread pool with a fixed number of threads |
newFixedThreadPool(int nThreads, ThreadFactory threadFactory) | Use the specified factory class , Create a thread pool with a fixed number of threads |
newSingleThreadExecutor() | Create a thread pool of threads |
newSingleThreadExecutor(ThreadFactory threadFactory) | Use the specified factory class , Create a thread pool of threads |
2. Static methods for creating various thread pools , The return value is ScheduledExecutorService
Method | describe |
newScheduledThreadPool(int corePoolSize) | Create a thread pool , The thread pool can schedule commands to run after a given delay or execute periodically |
newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory) | Use the specified factory class , Create a thread pool , The thread pool can schedule commands to run after a given delay or execute periodically |
newSingleThreadScheduledExecutor() | Create a single threaded executor , The actuator can schedule commands to run after a given delay or execute them regularly |
newSingleThreadScheduledExecutor(ThreadFactory threadFactory) | Use the specified factory class , Create a single threaded executor , The actuator can schedule commands to run after a given delay or execute them regularly |
3. Create and return one ThreadFactory, The ThreadFactory Set the newly created thread to a known state
Return value | Method | describe |
static ThreadFactory | defaultThreadFactory() | Return a default thread factory class to create a new thread |
static ThreadFactory | privilegedThreadFactory() | Returns a thread factory , This thread factory is used to create a new thread with the same permissions as the current thread ,privilegedThreadFactory Class inherited defaultThreadFactory class |
4. Create and return a from other closure like forms Callable Methods , Therefore, they can be used to need Callable How to execute
Return value | Method | describe |
static Callable<Object> | callable(PrivilegedAction<?> action) | Return to one Callable object , The object runs the given privileged operation and returns its result when called |
static Callable<Object> | callable(PrivilegedExceptionAction<?> action) | Return to one Callable object , The object runs the given privileged exception operation and returns its result when called |
static Callable<Object> | Return to one Callable object , This object runs the given task when called and returns null | |
static <T> Callable<T> | callable(Runnable task, T result) | Return to one Callable object , This object runs the given task and returns the given result when called |
Two 、 Not recommended Executors Why
Thread pools are not allowed Executors To create , But through ThreadPoolExecutor The way , This way of processing makes the students who write more clear about the running rules of the thread pool , Avoid the risk of resource exhaustion .Executors The disadvantages of each method :
1. newSingleThreadExecutor and newFixedThreadPool: The main problem is that the docked request processing queue may consume a lot of memory , even to the extent that OOM
2.newCachedThreadPool and newScheduledThreadPool: The main problem is that the maximum number of threads is Integer.MAX_VALUE, A very large number of threads may be created , Set up OOM
3、 ... and 、Executor Interface
Only one in the interface execute Method , This interface is the ancestor of all thread pools
版权声明
本文为[pureluckyfish]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231406486515.html
边栏推荐
猜你喜欢
帆软中使用if else 进行判断-使用标题条件进行判断
容灾有疑问?点这里
Gartner预测云迁移规模大幅增长;云迁移的优势是什么?
Jmeter设置环境变量支持在任意终端目录输入jmeter直接启动
倒计时1天~2022云容灾产品线上发布会即将开始
postman批量生产body信息(实现批量修改数据)
线程组ThreadGroup使用介绍+自定义线程工厂类实现ThreadFactory接口
Pass in external parameters to the main function in clion
MySQL-InnoDB-事务
01-nio basic ByteBuffer and filechannel
随机推荐
HyperMotion云迁移助力中国联通,青云完成某央企上云项目,加速该集团核心业务系统上云进程
MySQL数据库讲解(八)
星界边境Starbound创意工坊订阅的mod的存放路径
帆软中使用if else 进行判断-使用标题条件进行判断
krpano全景之vtour文件夹和tour
线程间控制之Semaphore使用介绍
findstr不是内部或外部命令解决方法
elk安装
预览CSV文件
Date的after时间判断
dp-[NOIP2000]方格取数
Recyclerview advanced use (II) - simple implementation of vertical drag and drop sorting
sql中出现一个变态问题
金融行业云迁移实践 平安金融云整合HyperMotion云迁移解决方案,为金融行业客户提供迁移服务
Pass in external parameters to the main function in clion
Switch usage (wechat applet)
什么是云迁移?云迁移的四种模式分别是?
关于训练过程中损失函数出现断崖式增长的问题
RecyclerView进阶使用-实现仿支付宝菜单编辑页面拖拽功能
mysql 5.1升级到5.69