标签:改变 运行时 sync handle volatil 不同 cpu 注意 err
java.lang.Thread.State 6种状态
线程方法
volatile与synchronized
等待
ThreadPoolExecutor
参数:核心线程数、最大线程数、超出核心线程存活时间、时间类型、队列、拒绝策略
执行15个线程
// 预计结果:线程池线程数量为:5,超出数量的任务,其他的进入队列中等待被执行
//5个任务直接分配线程开始执行、3个任务进入等待队列、 队列不够用,临时加开5个线程来执行任务(5秒没活干就销毁)、 队列和线程池都满了,剩下2个任务,没资源了,被拒绝执行。、 任务执行,5秒后,如果无任务可执行,销毁临时创建的5个线程
//线程池线程数量为:5,超出数量的任务,其他的进入队列中等待被执行
//线程池线程数量为:15,超出数量的任务,其他的进入队列中等待被执行 、 所有任务执行结束,60秒后,如果无任务可执行,所有线程全部被销毁,池的大小恢复为0
定时执行线程池
executor.schedule(runnable(),3000, TimeUnit.MILLISECONDS); //任务在3秒后被执行一次
提交后,2秒后开始第一次执行,之后每间隔1秒,固定执行一次(如果发现上次执行还未完毕,则等待完毕,完毕后立刻执行)。
提交后,2秒后开始第一次执行,之后每间隔1秒,固定执行一次(如果发现上次执行还未完毕,则等待完毕,等上一次执行完毕后再开始计时,等待1秒)。
executor.shutdown(); //调用shutdown后,不接收新的任务,等待13任务执行结束。追加的任务在线程池关闭后,无法再提交,会被拒绝执行
executor.shutdownNow(); //调用shutdownnow后,队列中的3个线程不再执行,10个线程被终止。追加的任务在线程池关闭后,无法再提交,会被拒绝执行
标签:改变 运行时 sync handle volatil 不同 cpu 注意 err
原文地址:https://www.cnblogs.com/iathanasy/p/12434084.html