首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
小烦恼没什么大不了1
2017-09-17 16:01
杭州电子科技大学 Java
关注
已关注
取消关注
一个线程池的疑问
最近在看线程池,想到个问题。比如一个FixedThreadPool,初始化了5个线程,现在有6个任务,那么他会先分配5个线程执行5个任务,哪个线程先执行完任务就会去执行第6个任务。这里有个问题,一个线程可以执行两个任务吗? 还是说,后面又新建了一个线程,只不过线程名字和前面的一样?是和ThreadFactory有关吗?
#Java工程师#
提示
全部评论
推荐
最新
楼层
ss.edu
汕头市业余大学 安卓
看源码就知道了,线程池里的线程是一死循环,你放进去的runnable回被丢到那个死循环里执行,执行完线程不会挂,它空闲下来就可以去队列里拿新的任务出来执行了
点赞
回复
分享
发布于 2017-09-17 16:09
等待我的只有感谢信
中国计量大学 安卓
FixedThreadPool coresize =max Size=n,keepalive =0,阻塞队列***,所以你说的情况就是刚开始5条线程执行5个任务,剩下一个在队列里等,5条里面先执行完的会在执行完后去队列里取新任务。
点赞
回复
分享
发布于 2017-09-17 16:12
intelli
北京科技大学 Java
不是先执行完,5个线程同时执行6个任务,时间片
点赞
回复
分享
发布于 2017-09-17 16:03
踏浪子
清华大学 Java
线程池作用就是线程复用,5个线程来6个任务,有一个任务就会在队列中等待,先执行完任务的线程会接着执行最后一个任务的。
点赞
回复
分享
发布于 2017-09-17 16:08
求毕业。
电子科技大学 Java
借楼问一个,阻塞队列此时还有未被执行的线程,此时一个任务到达,刚好出现空闲现场,会先执行阻塞队列的还是先执行到达的这个任务
点赞
回复
分享
发布于 2017-09-17 16:09
全能
美团_rd
执行完后再去拿任务,谁先执行完就去拿下一个任务,如果设置了allowCoreThreadTimeOut,那么长时间不使用,工作线程会撤销,那么下一次处理的工作线程和原来处理可能不是一个线程
点赞
回复
分享
发布于 2017-09-17 16:13
codejunior
华中科技大学 Java
大致和你说的差不多,线程池在其中线程数小于corePoolSize的时候会直接把thread和runnable对象一起包装成一个Worker,然后调用runWorker方法启动线程,一般称这个过程为预热。当他的任务执行完成后会去阻塞队列里取待完成任务,就是调用getTask方法: while (task != null || (task = getTask()) != null) { } 至于这个线程啥时候被回收就看你的keepAliveTime参数配置了。
点赞
回复
分享
发布于 2017-09-17 16:14
月亮先生
北京交通大学 Java
可以看一本书,java并发编程的艺术,最后一章讲的很详细
点赞
回复
分享
发布于 2017-09-17 16:21
小烦恼没什么大不了1
楼主
杭州电子科技大学 Java
可能问题没有表达清楚,楼上的回答好多都回答的是5个线程执行6个任务的问题。其实我的问题是线程池中一个线程是如何去执行第二个任务的。 我的理解是: 是不是这样:线程池中初始化的每个线程中的runnable内部其实是一个无限循环的,循环中通过getTask()获取任务来执行。 对吗? 还有问下这是在哪个方法里面的?
点赞
回复
分享
发布于 2017-09-17 16:26
codeshepard
上海交通大学 C++
池子里有多个worker,每一个worker是一个实际在跑的线程,它们都实现了runnable,并且是通过start()启动的。只不过它本身是没有具体任务,而是执行你加进去的任务。worker每次从队列中抓一个runnable,然后直接执行它的run()函数。理解这个,只要知道runnable通过start()和通过run()执行是不同的。
点赞
回复
分享
发布于 2017-09-17 17:27
秋丶舞霜
北京工业大学 Java
6个任务进入队列 五个线程去轮询队列执行程序
点赞
回复
分享
发布于 2017-09-17 17:31
火锅一家
西湖大学 Java
Phaser 5个线程 其中一个线程加 arriveAndWaitAdvance()方法 然后在这个方法后面 加第六个任务
点赞
回复
分享
发布于 2017-09-17 17:37
白杨树下繁花落尽
西安邮电大学 Java
第六个线程会被加入任务队列中,其他5个线程中的一个任务执行完后,会在执行第六个任务。
点赞
回复
分享
发布于 2017-09-17 20:04
还没有回复哦~
相关推荐
11-27 11:29
小红书_社区技术部_前端开发(实习员工)
10.30字节一面
【再再再再再再再战字节,摆烂了,这次一面都没过(手撕做出来了前面还有几轮字节面试忘记录音了,就不记录了。1.自我介绍2.主要技术栈是3.是否了解react4.做题【建议下次做这种题目拿个草稿纸!!】 console.log('start'); setTimeout(() => { console.log('children2'); setTimeout(function() { console.log('children8'); }, 0) ; Promise.resolve().then(() => { console.log('chil...
查看16道真题和解析
面经烤面筋
点赞
评论
收藏
分享
11-25 00:16
四川大学 供应链专员
秋招的我,真是快要崩溃了
之前我还算能沉得住气,面试虽然挂了,但总觉得机会会来。可到了现在,我的焦虑开始疯狂蔓延,身边的人一个个拿到高薪offer,心里难免受到影响。每次面试后,我都在反复琢磨面试官的每一句话,觉得自己哪里都不够好。求助大家,如何调整心态?秋招不行,春招还能有希望吗?
牛客创作赏金赛
点赞
评论
收藏
分享
11-18 10:36
内蒙古民族大学 Java
二本实习简历,初筛都过不去
狠狠的赚一笔😋
听说改名字就能收到offer哈:
Radis写错了兄弟
点赞
评论
收藏
分享
11-12 10:25
武汉晴川学院 Java
这家公司咋样啊 哥姐们
我见java多妩媚:
大外包
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
8
分享
评论
提到的真题
返回内容
招聘动态
查看更多
字节跳动
2025校园招聘
阿里云管培生
2025届校园招聘
快手Star
2025届招聘
快手
销售类投递专区
富士通(西安)
2025校园招聘
全站热榜
1
...
到了新公司,不要用力过猛
1.8W
2
...
万字长文讲透金融科技方向的就业机会
8369
3
...
校招两方/三方违约模板
7242
4
...
泡出来啦
7134
5
...
华为开奖,详细时间线
6107
6
...
秋招圆满结束!!
6074
7
...
华为开奖?
5966
8
...
今年谨慎等华为
5704
9
...
从露宿街头到百万级种子轮融资②——我的实习期都经历了什么
5538
10
...
听学长的没错
5418
正在热议
#
25届秋招总结
#
384695次浏览
3833人参与
#
实习,投递多份简历没人回复怎么办
#
2431087次浏览
34663人参与
#
北方华创开奖
#
65143次浏览
526人参与
#
地方国企笔面经互助
#
6242次浏览
14人参与
#
ai智能作图
#
13332次浏览
201人参与
#
发工资后,你做的第一件事是什么
#
5421次浏览
23人参与
#
阿里云管培生offer
#
54363次浏览
1549人参与
#
我的实习求职记录
#
6111218次浏览
83869人参与
#
哪些公司校招卡第一学历
#
31753次浏览
91人参与
#
硬件兄弟们 甩出你的华为奖状
#
76698次浏览
621人参与
#
如果再来一次,你还会选择这个工作吗?
#
105190次浏览
1059人参与
#
工作中,你有没有遇到非常爱骂人的领导?
#
4436次浏览
41人参与
#
你觉得第一学历对求职有影响吗?
#
16117次浏览
131人参与
#
在职场上,你最讨厌什么样的同事
#
5293次浏览
72人参与
#
如果你有一天可以担任公司的CEO,你会做哪三件事?
#
9290次浏览
190人参与
#
牛客租房专区
#
4076次浏览
115人参与
#
如果有时光机,你最想去到哪个年纪?
#
27242次浏览
566人参与
#
华为工作体验
#
109651次浏览
853人参与
#
中兴求职进展汇总
#
467092次浏览
2435人参与
#
还记得你第一次面试吗?
#
30525次浏览
429人参与
#
秋招你被哪家公司挂了?
#
344214次浏览
3287人参与
#
许愿池
#
216881次浏览
2544人参与
牛客网
牛客企业服务