首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
小烦恼没什么大不了1
2017-09-17 16:01
杭州电子科技大学 Java
关注
已关注
取消关注
一个线程池的疑问
最近在看线程池,想到个问题。比如一个FixedThreadPool,初始化了5个线程,现在有6个任务,那么他会先分配5个线程执行5个任务,哪个线程先执行完任务就会去执行第6个任务。这里有个问题,一个线程可以执行两个任务吗? 还是说,后面又新建了一个线程,只不过线程名字和前面的一样?是和ThreadFactory有关吗?
#Java工程师#
提示
全部评论
推荐
最新
楼层
等待我的只有感谢信
中国计量大学 安卓
FixedThreadPool coresize =max Size=n,keepalive =0,阻塞队列***,所以你说的情况就是刚开始5条线程执行5个任务,剩下一个在队列里等,5条里面先执行完的会在执行完后去队列里取新任务。
点赞
回复
分享
发布于 2017-09-17 16:12
ss.edu
汕头市业余大学 安卓
看源码就知道了,线程池里的线程是一死循环,你放进去的runnable回被丢到那个死循环里执行,执行完线程不会挂,它空闲下来就可以去队列里拿新的任务出来执行了
点赞
回复
分享
发布于 2017-09-17 16:09
白杨树下繁花落尽
西安邮电大学 Java
第六个线程会被加入任务队列中,其他5个线程中的一个任务执行完后,会在执行第六个任务。
点赞
回复
分享
发布于 2017-09-17 20:04
火锅一家
西湖大学 Java
Phaser 5个线程 其中一个线程加 arriveAndWaitAdvance()方法 然后在这个方法后面 加第六个任务
点赞
回复
分享
发布于 2017-09-17 17:37
秋丶舞霜
北京工业大学 Java
6个任务进入队列 五个线程去轮询队列执行程序
点赞
回复
分享
发布于 2017-09-17 17:31
codeshepard
上海交通大学 C++
池子里有多个worker,每一个worker是一个实际在跑的线程,它们都实现了runnable,并且是通过start()启动的。只不过它本身是没有具体任务,而是执行你加进去的任务。worker每次从队列中抓一个runnable,然后直接执行它的run()函数。理解这个,只要知道runnable通过start()和通过run()执行是不同的。
点赞
回复
分享
发布于 2017-09-17 17:27
小烦恼没什么大不了1
楼主
杭州电子科技大学 Java
可能问题没有表达清楚,楼上的回答好多都回答的是5个线程执行6个任务的问题。其实我的问题是线程池中一个线程是如何去执行第二个任务的。 我的理解是: 是不是这样:线程池中初始化的每个线程中的runnable内部其实是一个无限循环的,循环中通过getTask()获取任务来执行。 对吗? 还有问下这是在哪个方法里面的?
点赞
回复
分享
发布于 2017-09-17 16:26
月亮先生
北京交通大学 Java
可以看一本书,java并发编程的艺术,最后一章讲的很详细
点赞
回复
分享
发布于 2017-09-17 16:21
codejunior
华中科技大学 Java
大致和你说的差不多,线程池在其中线程数小于corePoolSize的时候会直接把thread和runnable对象一起包装成一个Worker,然后调用runWorker方法启动线程,一般称这个过程为预热。当他的任务执行完成后会去阻塞队列里取待完成任务,就是调用getTask方法: while (task != null || (task = getTask()) != null) { } 至于这个线程啥时候被回收就看你的keepAliveTime参数配置了。
点赞
回复
分享
发布于 2017-09-17 16:14
全能
美团_rd
执行完后再去拿任务,谁先执行完就去拿下一个任务,如果设置了allowCoreThreadTimeOut,那么长时间不使用,工作线程会撤销,那么下一次处理的工作线程和原来处理可能不是一个线程
点赞
回复
分享
发布于 2017-09-17 16:13
求毕业。
电子科技大学 Java
借楼问一个,阻塞队列此时还有未被执行的线程,此时一个任务到达,刚好出现空闲现场,会先执行阻塞队列的还是先执行到达的这个任务
点赞
回复
分享
发布于 2017-09-17 16:09
踏浪子
清华大学 Java
线程池作用就是线程复用,5个线程来6个任务,有一个任务就会在队列中等待,先执行完任务的线程会接着执行最后一个任务的。
点赞
回复
分享
发布于 2017-09-17 16:08
intelli
北京科技大学 Java
不是先执行完,5个线程同时执行6个任务,时间片
点赞
回复
分享
发布于 2017-09-17 16:03
暂无评论,快来抢首评~
相关推荐
07-01 14:16
门头沟学院 硬件开发
八股怎么背
八股刚起步,看了javaguide,小林coding,还有面渣,感觉面渣是体验最好的,请问只看面渣够用吗,有不完善的需要补吗?
码农索隆:
先背最基础的知识,然后理解情景题,现在面试大多数喜欢问情景题,更考验面试者的基础和临场发挥情况
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
07-03 17:30
学校的吃相太难看了!
本科50一天,我不知道这有啥可炫耀的,还有好多人抢着要去!
绮玉大王:
包食宿,一天还发50
你放到boss都一堆人抢
点赞
评论
收藏
分享
05-15 17:23
华中科技大学 Java
🙀
这是招了多少实习生啊,怎么都到沙发上办公了
深夜书店vv:
腾讯是这样的,去年很多走廊都加桌子当工区
点赞
评论
收藏
分享
05-26 12:19
门头沟学院 Java
大佬们,求拷打一下简历
这个简历怎么只能约到小厂的面啊😭
点赞
评论
收藏
分享
07-01 18:20
南京林业大学 golang
字节还在招吗?
四月份投字节简历给挂了,刚刚晚上吃饭的时候给我打电话说人才库里看我的信息,这边还有能转正的岗位,问我还有没有意向😅
投递字节跳动等公司10个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
8
分享
评论
提到的真题
返回内容
招聘动态
查看更多
现代汽车前瞻技术研发中心
京东TET
全站热榜
更多
1
...
腾讯csig暑期一二三面
6373
2
...
友友们如何看待这个问题
5692
3
...
腾讯云智后台开发暑期面经
4616
4
...
我举报了室友面试作弊
4566
5
...
简历很差吗?
4218
6
...
加班到十点,连续加班两个星期,这是实习生的强度吗?
3908
7
...
秋招打算走后端和agent开发,简历求批
3908
8
...
字节实习week6:听leader吐槽当前的应届生候选人们
3510
9
...
累了,和自己和解了
3156
10
...
不理解,为啥大家觉得不该举报面试作弊啊?
3102
创作者周榜
更多
正在热议
更多
#
百度工作体验
#
224822次浏览
1983人参与
#
机械人,你的秋招第一份简历被谁挂了
#
141335次浏览
1982人参与
#
现代汽车前瞻技术研发急速编程挑战赛
#
28841次浏览
222人参与
#
机械人与华为的爱恨情仇
#
117446次浏览
947人参与
#
银行笔面经互助
#
133535次浏览
1161人参与
#
发工资后,你做的第一件事是什么
#
68382次浏览
229人参与
#
你觉得实习能学到东西吗
#
37891次浏览
737人参与
#
金融财会交流会
#
110214次浏览
380人参与
#
大家每天通勤多久?
#
45097次浏览
339人参与
#
秋招什么时候开投比较合适?
#
25684次浏览
332人参与
#
正在实习的你,几点下班
#
169768次浏览
1170人参与
#
如何准备秋招
#
21520次浏览
406人参与
#
工作中哪个瞬间让你想离职
#
26083次浏览
178人参与
#
产品每日一题
#
46988次浏览
575人参与
#
机械人集合!你是什么工程师?
#
16019次浏览
89人参与
#
你们公司几号发工资
#
21620次浏览
143人参与
#
CVTE求职进展汇总
#
16021次浏览
292人参与
#
工作中,努力重要还是选择重要?
#
135168次浏览
1662人参与
#
硬件应届生薪资是否普遍偏低?
#
74272次浏览
514人参与
#
我想去国央企的原因
#
60225次浏览
393人参与
#
每个月的工资都是怎么分配的?
#
31868次浏览
455人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务