社区
进程/线程/DLL
帖子详情
线程池中的线程做完任务后怎么回到线程池中
liumu1209
2011-08-25 03:51:16
现有任务队列 TaskQueen
线程池 ThreadPool,初始化时线程池中的线程都是挂起的
从任务队列中获取一个任务,再线程中获取一个挂起的线程,给线程类装上任务,唤醒线程执行。
线程执行完后是怎么回到线程池中的?
...全文
207
7
打赏
收藏
线程池中的线程做完任务后怎么回到线程池中
现有任务队列 TaskQueen 线程池 ThreadPool,初始化时线程池中的线程都是挂起的 从任务队列中获取一个任务,再线程中获取一个挂起的线程,给线程类装上任务,唤醒线程执行。 线程执行完后是怎么回到线程池中的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
buyong
2011-08-25
打赏
举报
回复
你这是异步调用,可以用系统自带的QueueUserWorkItem
http://blog.sina.com.cn/s/blog_54384df80100a0g1.html
shenyi0106
2011-08-25
打赏
举报
回复
用线程本身的状态很好的管理线程池
通过让线程池中的线程等待在一个入口处,这样就可以控制线程池了
ndy_w
2011-08-25
打赏
举报
回复
同步啊!用临界区就行。
wesleyluo
2011-08-25
打赏
举报
回复
加个锁什么的,一次只能一个访问线程资源。
liumu1209
2011-08-25
打赏
举报
回复
[Quote=引用 1 楼 ndy_w 的回复:]
wait挂起
[/Quote]
线程类维护一个状态,在执行过程中把任务做完就修改线程状态为空闲,然后挂起自己。但是如果把线程状态修改为空闲的这个时候,恰好池线程调度空闲线程时又把它调出来装上任务执行,不是有问题了么。
liumu1209
2011-08-25
打赏
举报
回复
[Quote=引用 1 楼 ndy_w 的回复:]
wait挂起
[/Quote]
挂起的时候不需要先修改线程对象的状态吗,要不然怎么知道它是挂起的?
ndy_w
2011-08-25
打赏
举报
回复
wait挂起
多
线程
与
线程
池
技术详解
在当前的Java面试和后台开发
中
,多
线程
与
线程
池
技术越来越重要。毫不夸张的说,如何你想进入任何一家好的网络公司并能够长足发展,多
线程
与
线程
池
技术是必须要掌握的技能!
每天一个知识点-
线程
池
中
线程
执行
任务
发生异常会怎么样
每天一个知识点-
线程
池
中
线程
执行
任务
发生异常会怎么样
线程
池
和
线程
组及其实现
一、
线程
池
1、
线程
池
概念
线程
池
是一种多
线程
处理形式,处理过程
中
将
任务
添加到队列,然后在创建
线程
后自动启动这些
任务
。
线程
池
线程
都是后台
线程
。如果某个
线程
在托管代码
中
空闲(如正在等待某个事件),则
线程
池
将插入另一个辅助
线程
来使所有处理器保持繁忙。如果所有
线程
池
线程
都始终保持繁忙,但队列
中
包含挂起的工作,则
线程
池
将在一段时间后创建另一个辅助
线程
但
线程
的数目永远不会超过最大值。超过最...
线程
池
的
线程
是如何复用的
进程和
线程
的关系相信大家都知道,这里我就不
做
过多的解释了,既然一个进程是由多个
线程
组成的,那么
线程
池
又是由若干个
线程
队列组成的,在并发量比较高的情景下,我们通常会去创建
线程
池
就执行
任务
,而不单一的创建多个
线程
去执行
任务
,因为
线程
的创建的一系列动作,是需要资源开销的,如果频繁的对
线程
创建销毁,其实本身是一种很浪费资源的,就更谈不上提高效率了。
线程
池
及
线程
状态
线程
池
的两种创建方式及
线程
的六种状态,sleep,wait,join的使用
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章