2006年09月29日 星期五 13:45
比如我新建了10个thread 放在一个list里面 300秒钟以后统统都kill掉? 在windows下面,主thread推出,其他的thread竟然还在运行。 而且即使主thread调用sys.exit()也没有用。 我试过thread1.join(timeout)没有用,timeout没起作用。 这怎么办?我google到有人说python里面没有停掉进程的东西,是这样的么? 谢谢。 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20060929/482fb74d/attachment.html
2006年09月29日 星期五 14:13
On 9/29/06, Eric CHAO <lionchao在gmail.com> wrote: > 比如我新建了10个thread > 放在一个list里面 > 300秒钟以后统统都kill掉? > > 在windows下面,主thread推出,其他的thread竟然还在运行。 > 而且即使主thread调用sys.exit()也没有用。 > 我试过thread1.join(timeout)没有用,timeout没起作用。 > > 这怎么办?我google到有人说python里面没有停掉进程的东西,是这样的么? > 谢谢。 > 是的。线程要停掉目前比较好的方式是设一个标志,然后线程在运行时经常去查一查这个标志。再有如果想在主线程退出时,所有线程自动停掉,可以在创建线程对象后,调用setDaemon(True)将线程设置为Daemon,这样当主线程退出时,所有线程自动结束。 -- I like python! UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad My Blog: http://www.donews.net/limodou
2006年09月30日 星期六 09:37
¶Þiا8ky§lzÐÚzj'u§¦¢qÓ0µ.m§ÿéÊØhÉÿ¦*^®f¢úr¶'r§zÇ¿jÛZrÛ?ÛM:ÓÝôý÷[qÖëöµ§!éíÙ¥
2006年09月30日 星期六 16:28
当你import threading的时候会注册一个函数在程序退出的时候调用。那个函数的功能是join所有的不是daemon的且尚未结束的线程。join函数是等待线程自己退出,并不是说你join了,它就会退出,而你的线程我估计都是死循环的,死循环的线程是不会自己退出的。如果你想要将让它们退出有两个办法: 1在它们运行前将它们设定未daemon,这样在主线程结束的时候,就不必等它们。 2修改实现代码,让它们在满足某些条件的时候退出。 再说一次,join只是等等线程退出,并不强迫线程退出,如果线程不退出它也没办法。那个timeout只是表示你愿意等待的时间,时间过后就不再等待。注意threading里面注册的那个函数是没有设定timeout的,也就是一直等,等到那些子线程自己退出。
2006年09月30日 星期六 16:38
我在线程作的事情是下载一个url列表中的文件,所以分几个线程进行。 如果遇到网络问题,线程本身就会卡在某个语句上,而不是死循环造成无法退出。 所以我想在主线程中使用timeout,在合时的时间推出。 setdaemon是什么意思呀?看文档都有点看不懂,daemon是那种持续驻留的程序么?像apache一样的那种? 如果要达到我的目的,setdaemon为true还是false? On 9/30/06, 3751 <lwm3751 at gmail.com> wrote: > > 当你import > threading的时候会注册一个函数在程序退出的时候调用。那个函数的功能是join所有的不是daemon的且尚未结束的线程。join函数是等待线程自己退出,并不是说你join了,它就会退出,而你的线程我估计都是死循环的,死循环的线程是不会自己退出的。如果你想要将让它们退出有两个办法: > 1在它们运行前将它们设定未daemon,这样在主线程结束的时候,就不必等它们。 > 2修改实现代码,让它们在满足某些条件的时候退出。 > > 再说一次,join只是等等线程退出,并不强迫线程退出,如果线程不退出它也没办法。那个timeout只是表示你愿意等待的时间,时间过后就不再等待。注意threading里面注册的那个函数是没有设定timeout的,也就是一直等,等到那些子线程自己退出。 > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20060930/6bf7067a/attachment.html
2006年09月30日 星期六 16:41
timeout最好放在每个线程中。结束线程生命的最好方式就是让它完成工作后,自然结束。 -- GoogleTalk: qcxhome at gmail.com MSN: qcxhome at hotmail.com My Space: tkdchen.spaces.live.com BOINC: boinc.berkeley.edu 中国分布式计算总站: www.equn.com
Zeuux © 2025
京ICP备05028076号