首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
昨天 17:06
已编辑
门头沟学院 业务管理
今年提前批的公司都好低调啊!
已经准备all in秋招了有牛友和我一起咩?
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
06-20 14:14
腾讯云实习入职半月,跑路会被拉黑吗?
是被腾讯拉黑还是一个部门拉黑拉黑是肯定的但是整个腾讯有点吓人有没有经历过的友友
咸鱼吃饱饱:
经历了什么😂
投递腾讯等公司7个岗位 >
实习吐槽大会
点赞
评论
收藏
分享
06-09 20:53
已编辑
门头沟学院 Java
26届求求了🙏🥺
目标中小厂就行, boss200+沟通投出去 6份简历 1面试😫要了简历就没后续了,是不是简历写得不好,求大佬帮我看看简历提点建议🥺
sounfury:
找java工作的话把java内容占比写多点,你鸿蒙写太多了
点赞
评论
收藏
分享
06-24 14:41
西安电子科技大学 Java
面试官问我,后端一次性返回十万条数据,前端应该怎么处理 ?
问题描述面试官:后端一次性返回10万条数据给你,你如何处理?我:歪嘴一笑,马上给后端发送一百万次请求,干蹦他的服务器,让他给爷哭!问题考察点性能优化意识(能否识别出“10 万条数据”会导致性能问题?是否第一反应是优化处理方式?)浏览器渲染机制认知(是否理解 DOM 多、内存占用大、长任务对 UI 卡顿的影响?)数据处理策略(是否会用分页、分片、懒加载、虚拟滚动等数据加载/渲染策略?)项目实战经验(是否能结合实际业务讲解你曾用过的优化方案?)前后端协同思维(是否考虑跟后端协商分页/接口设计?)代码抽象能力(是否能设计合理的数据结构 / 缓存机制 / Worker / 节流方案?)解决方案和思路1...
牛客在线求职答疑中心
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
8
分享
评论
提到的真题
返回内容
招聘动态
查看更多
现代汽车前瞻技术研发挑战赛
26届投递链接合集
快手
全站热榜
更多
1
...
AI应用面试题
5.1W
2
...
秋招就投这些了
3.7W
3
...
不懂“心眼子”会吃大亏!测测你的心眼子能拿几分?
2.5W
4
...
26届各互联网厂开启秋招时间线汇总
1.3W
5
...
求助!如何拒绝同个小区的同事蹭车?
7796
6
...
女友爸爸帮我花钱找了工作,我爸妈觉得应该的
4076
7
...
暑期实习后发现自己不适合大厂
3757
8
...
华为od入职日志-入职前夕
3579
9
...
最emo的一天
3345
10
...
看看你是不是亲生的
3057
创作者周榜
更多
正在热议
更多
#
26届校招投递进展
#
5153次浏览
70人参与
#
2023届毁约公司名单
#
197953次浏览
954人参与
#
为了找工作你花了哪些钱?
#
17143次浏览
150人参与
#
你秋招想去哪些公司
#
7041次浏览
397人参与
#
第一份工作能做外包吗?
#
16822次浏览
199人参与
#
选完offer后,你后悔学机械吗?
#
30539次浏览
173人参与
#
你今年的平均薪资是多少?
#
128720次浏览
670人参与
#
你都遇到过哪些离谱的求职经历
#
11517次浏览
36人参与
#
分享一个让你热爱工作的瞬间
#
28922次浏览
308人参与
#
电信求职进展汇总
#
10157次浏览
85人参与
#
制造业的秋招小结
#
90365次浏览
1629人参与
#
你见过最离谱的招聘要求是什么?
#
195638次浏览
1456人参与
#
作业帮求职进展汇总
#
53883次浏览
362人参与
#
应届生进小公司有什么影响吗
#
74913次浏览
1019人参与
#
为什么那么多公司毁约
#
175390次浏览
1327人参与
#
如果实习可以转正,你会不会放弃秋招
#
521194次浏览
4531人参与
#
实习期间如何提升留用概率?
#
94688次浏览
1149人参与
#
应届生应该先就业还是先择业
#
110646次浏览
643人参与
#
非技术岗薪资爆料
#
369252次浏览
2771人参与
#
参加完秋招的机械人,还参加春招吗?
#
50908次浏览
553人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务