多线程数量及超时控制的有关问题
多线程数量及超时控制的问题
小弟初接触多线程,想实现, 1、线程的数量保持在5,判断当前线程数量如果少于5个,就增加至5个 2、不确定某个线程可能会出现超时的情况,如果某线程超过1分钟还未执行完毕,则关闭该线程
小弟目前还没有想到实现的方法,请有经验的指点一下,如果能给出部分代码的就更感激不尽了,谢谢。
------解决方案--------------------
1、判断线程状态:GetExitCodeThread
------解决方案--------------------
超时的部分,得记录每个线程启动的时间,然后轮询
不过这样的话,时间上不会很精确,而且很耗cpu
------解决方案--------------------
用一个定时器,隔一段时间给主线程发一个消息,要求其判断所有线程的运行时间!
------解决方案--------------------
建立一个数据结构链表 用来统计线程数量和线程状态的 新建一个系统线程 主要用来控制前面的数据结构 轮询检查结构的情况 如果发现线程数结构错误 那么就尝试强行终止并初始化结构赋予一个新线程启动 就说到这 自己去思考
------解决方案--------------------
线程池的话每个任务要求是不能阻塞的就行了,类似于操作系统调度任务时间片加轮循
------解决方案--------------------
1.线程数量问题, 你启动线程时,能获得线程指针,自己管理好线程指针就可以了,线程关闭了指针为NULL,不为NULL的表明怎么运行
2.超时问题,每个线程定义一个CTime量,实时更新。然后在父线程中轮询,通过比较时间的方法就知道是否超时
小弟初接触多线程,想实现, 1、线程的数量保持在5,判断当前线程数量如果少于5个,就增加至5个 2、不确定某个线程可能会出现超时的情况,如果某线程超过1分钟还未执行完毕,则关闭该线程
小弟目前还没有想到实现的方法,请有经验的指点一下,如果能给出部分代码的就更感激不尽了,谢谢。
------解决方案--------------------
1、判断线程状态:GetExitCodeThread
------解决方案--------------------
超时的部分,得记录每个线程启动的时间,然后轮询
不过这样的话,时间上不会很精确,而且很耗cpu
------解决方案--------------------
用一个定时器,隔一段时间给主线程发一个消息,要求其判断所有线程的运行时间!
------解决方案--------------------
建立一个数据结构链表 用来统计线程数量和线程状态的 新建一个系统线程 主要用来控制前面的数据结构 轮询检查结构的情况 如果发现线程数结构错误 那么就尝试强行终止并初始化结构赋予一个新线程启动 就说到这 自己去思考
------解决方案--------------------
线程池的话每个任务要求是不能阻塞的就行了,类似于操作系统调度任务时间片加轮循
------解决方案--------------------
1.线程数量问题, 你启动线程时,能获得线程指针,自己管理好线程指针就可以了,线程关闭了指针为NULL,不为NULL的表明怎么运行
2.超时问题,每个线程定义一个CTime量,实时更新。然后在父线程中轮询,通过比较时间的方法就知道是否超时