关于线程池的疑问

首先是线程池中的线程如何实现复用,即一个线程执行完后怎么变成了空闲线程,二是能否对一个线程start两次,如果想某个线程执行完后再次执行,如何做?求各位大佬解答
全部评论
我只针对Java的线程池来说。 第一、Java的线程池是通过阻塞队列来完成线程复用的,如果阻塞都列不为空,线程从阻塞队列取出Runable运行,运行完毕后,继续到阻塞队列去取新任务,如果阻塞队列为空,就阻塞线程。 懂了吧?所谓的线程复用,就是不停的从阻塞队列取任务,如果没有新任务就阻塞。至于阻塞队列的实现,其实就是加锁与线程同步的问题。 第二、一个线程不能start两次。
点赞 回复 分享
发布于 2017-11-03 14:46
最简单的就是 线程创建后都等待某个信号,竞争任务队列 当前任务执行完了就循环继续等待信号 竞争任务队列
点赞 回复 分享
发布于 2017-11-02 12:14

相关推荐

把实习生当正职使昨天第一天就加班,晚上连口饭都没吃上,以后日子咋过,我不想干了
码农索隆:实习不怕忙,就怕干的活重复且没难度,要干就干那种有深度有难度的任务,这样才能快速的提升
实习吐槽大会
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-26 14:50
人力小鱼姐:有后面墨迹那两句的时间问题早回答完了
点赞 评论 收藏
分享
昨天 13:37
门头沟学院 Java
点赞 评论 收藏
分享
墨西哥大灰狼:如果你的校友卤馆还在的话,他肯定会给你建议的,可是卤馆注销了@ 程序员卤馆
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务