首页 > 代码库 > ThreadPool使用流程
ThreadPool使用流程
keepAliveTime只针对大于corePoolSize且小于maximumPoolSize的空闲线程,比如corePoolSize=10,maxPoolSize=20,当前有15个线程在跑着,过段时间有4个线程处于等待状态的时间超过了keepAliveTime指定的时间,则结束掉此4个线程
普通的线程有五个状态:新建,可运行,阻塞,等待,结束。
线程池中的线程只有两个状态:可运行,等待
shutdown,只是遍历池中所有处于等待状态的空闲worker,对他们执行interupter操作
shutdownNow,则遍历池中所有worker线程,执行interupter操作,并返回等待处理的任务列表。
也就是说,虽然执行了shutdown(或shutDownNow),并不一定能够停止运行过程中的线程,只能对他们中断,告知他们,你们的活可以停了,但是具体要不要停,则由线程本身的逻辑来控制,这样做的好处,我觉得是避免了代码逻辑的不完整性,避免破坏代码中可能存在的原子性逻辑。
ThreadPool使用流程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。