当前位置:网站首页>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
边栏推荐
猜你喜欢
Jira截取全图
多云数据流转?云上容灾?年前最后的价值内容分享
星界边境Starbound创意工坊订阅的mod的存放路径
Jmeter安装教程以及我遇到的问题的解决办法
VMware15Pro在Deepin系统里面挂载真机电脑硬盘
Idea控制台乱码解决
容灾有疑问?点这里
Logback logger and root
A table splitting implementation scheme of MySQL and InnoDB, MyISAM and MRG_ Introduction to MyISAM and other engine application scenarios
困扰多年的系统调研问题有自动化采集工具了,还是开源免费的
随机推荐
RecyclerView细节研究-RecyclerView点击错位问题的探讨与修复
Wechat applet positioning and ranging through low-power Bluetooth device (2)
mysql 5.1升级到5.69
数据库DbVisualizer Pro报文件错误,导致数据连接失败
findstr不是内部或外部命令解决方法
MySQL基础知识
Win10 comes with groove music, which can't play cue and ape files. It's a curvilinear way to save the country. It creates its own aimpack plug-in package, and aimp installs DSP plug-in
使用DialogFragment的一些感受及防踩坑经验(getActivity、getDialog为空,cancelable无效等)
mysql查询库大小
JDBC details
预览CSV文件
How QT designer adds resource files
Redis数据库讲解(一)
Operation instructions of star boundary automatic text translator (advanced version)
什么是云迁移?云迁移的四种模式分别是?
VMware 15pro mounts the hard disk of the real computer in the deepin system
帆软报表设置单元格填报以及根据值的大小进行排名方法
RecyclerView进阶使用-实现仿支付宝菜单编辑页面拖拽功能
1到100号的灯开关问题
如何轻松做好一个项目