线程池类Executors的运用
发布日期:2021-09-16 12:20:04
浏览次数:6
分类:技术文章
本文共 1109 字,大约阅读时间需要 3 分钟。
public class Test12 {public static void main(String[] args) {// ExecutorService threadPool=Executors.newFixedThreadPool(3);//创建固定的线程个数放入线程池中 /*创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。 如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。 因此,长时间保持空闲的线程池不会使用任何资源。 */// ExecutorService threadPool=Executors.newCachedThreadPool(); /*创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。(注意,如果因为在关闭前的执行 期间出现失败而终止了此单个线程,那么如果需要,一个新线程将代替它执行后续的任务)。可保证顺序地执行 各个任务,并且在任意给定的时间不会有多个线程是活动的。*/ ExecutorService threadPool=Executors.newSingleThreadExecutor(); for(int i=0;i<10;i++){ final int task=i; threadPool.execute(new Runnable(){ public void run(){ for(int j=0;j<5;j++){ try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+" has loop "+j+" is pool num "+task); } } }); } /*启动一次顺序关闭,执行以前提交的任务,但不接受新任务。如果已经关闭,则调用没有其他作用 也就是等上面的都执行完成之后会把线程池中的线程销毁回收,否则的话线程池中的线程还存在, 程序不会运行终止*/// threadPool.shutdown(); /*试图停止所有正在执行的活动任务,暂停处理正在等待的任务,并返回等待执行的任务列表。 不会等到上面运行完才停止线程,会立刻停止*/// threadPool.shutdownNow();}}
转载地址:https://blog.csdn.net/wxwzy738/article/details/7487052 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月10日 05时13分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Lua(十二)——表
2019-04-27
Lua(十三)——模块与包
2019-04-27
Lua(四)——变量
2019-04-27
Lua(十四)——元表
2019-04-27
Lua(十五)——协同程序
2019-04-27
Lua(十六)——文件
2019-04-27
Lua(十七)——面向对象
2019-04-27
Lua(十八)——错误处理,垃圾回收
2019-04-27
xLua(一)——介绍
2019-04-27
xLua(二)——下载
2019-04-27
xLua(三)——在C#中访问Lua代码
2019-04-27
xLua(四)——C#访问Lua的基本类型
2019-04-27
xLua(五)——C#访问Lua的table
2019-04-27
xLua(六)——C#访问Lua的function
2019-04-27
基础知识——常用单位介绍
2019-04-27
xLua(七)——Lua访问C#(一)
2019-04-27
xLua(八)——Lua访问C#(二)
2019-04-27
Unity中实现解析Json文件
2019-04-27
Unity自带Json解析库——JsonUtility
2019-04-27
Unity中使用ViedoPlayer操作视频文件
2019-04-27