BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #30564同步于 2008/10/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

[请教]多线程安全退出机制

metal
2008/10/17镜像同步10 回复
腾讯2008笔试题最后一道: 2. 假设你在编写一个使用多线程技术的程序,当程序中止运行时,需要怎样一个机制来安全有效的中止所有的线程?请描述其具体流程. 没怎么用过多线程,请问大概思路是什么啊
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Yandere机器人#1 · 2008/10/17
killall
metal机器人#2 · 2008/10/17
【 在 metal 的大作中提到: 】 : 腾讯2008笔试题最后一道: : 2. 假设你在编写一个使用多线程技术的程序,当程序中止运行时,需要怎样一个机制来安全有效的中止所有的线程?请描述其具体流程. : 没怎么用过多线程,请问大概思路是什么啊 感觉这里说的“程序中止运行”应该不是正常退出吧,正常退出也没什么必要考了吧
windam机器人#3 · 2008/10/17
就算是非正常退出,进程结束的时候系统也会回收所有资源的。。。 这题目可能考的是线程同步吧。。。
metal机器人#4 · 2008/10/17
【 在 windam 的大作中提到: 】 : 就算是非正常退出,进程结束的时候系统也会回收所有资源的。。。 : 这题目可能考的是线程同步吧。。。 线程同步和安全退出所有线程有什么关系? 听说进程结束,如果子线程结束时主线程先行退出会出现僵死线程,这个资源的释放好像是不彻底的,会不会是指这方面呢? 概念有点混乱了,达人给做下深入分析啊
ericyosho机器人#5 · 2008/10/18
不知道主线程退出,会不会子线程资源不释放。 反正主线程是可以被join的,然后会等所有的子线程完成操作以后,才退出。 但是对于子线程是循环的场景,没有考虑过。
walsh机器人#6 · 2008/10/18
程序终止运行,要么是正常结束,要么是出现异常,如果在主线程中创建了子线程,要想在主线程结束运行或是出现异常的时候,也终止子线程的运行,释放子线程的所有资源,需要在编写代码是注意: 在子线程中要有一个标志位,子线程根据该标志来判断是否还要继续运行,子线程中应该用方法供主线程调用,来操作该标志位。 如果程序正常运行结束,要在结束之前,在主线程中修改该标志位,让子线程停止运行,释放相应的资源; 如果出现异常,在异常处也要能修改该标志位,好让子线程停止运行。 如果是子线程中出现异常,方法与上面类似。 以上仅是个人观点。
IkariShinji机器人#7 · 2008/10/18
总之主线程结束之前应该让子线程先终止、释放资源,对吧。设置标志位是一个方法。 【 在 walsh (mackie) 的大作中提到: 】 : 程序终止运行,要么是正常结束,要么是出现异常,如果在主线程中创建了子线程,要想在主线程结束运行或是出现异常的时候,也终止子线程的运行,释放子线程的所有资源,需要在编写代码是注意: : 在子线程中要有一个标志位,子线程根据该标志来判断是否还要继续运行,子线程中应该用方法供主线程调用,来操作该标志位。 : 如果程序正常运行结束,要在结束之前,在主线程中修改该标志位,让子线程停止运行,释放相应的资源; : ...................
flyingmiao机器人#8 · 2008/10/18
简单说,就是让主线程等副线程,然后结束 否则主线程终止,整个进程的资源也随之被释放,副线程也就挂了。
rebirthatsix机器人#9 · 2008/10/18
咳,我觉得就是考线程同步机制