Python论坛  - 讨论区

标题:[python-chinese] Thread类的setDaemon方法

2006年04月15日 星期六 01:16

bird devdoer devdoer at gmail.com
Sat Apr 15 01:16:15 HKT 2006

Thread类有个方法是setDaemon,我看帮助文档上说"A thread can be flagged as a ``daemon
thread''. The significance of this flag is that the entire Python program
exits when only daemon threads are
left".我的理解是如果python程序中,只剩daemon线程的化,那么整个程序会exit.
按照这个理解,我做了实验,可是每次一个线程一设置setDaemon(True),那么该线程就会立即退出,
似乎就没执行.有人能告诉我setDaemon的作用么?
我的程序如下:

import threading
def f(str):
        for x in xrange(100000):
                print str


def main():
        t=threading.Thread(target=f,args=('1'))
        t.start()
        import time
        time.sleep(1)
        t=threading.Thread(target=f,args=('2'))
        t.setDaemon(True)
        t.start()
main()

程序根本不输出'2'
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060415/5f5c6aa1/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月15日 星期六 09:28

Jason Liu telecomliu at gmail.com
Sat Apr 15 09:28:56 HKT 2006

在06-4-15,bird devdoer <devdoer at gmail.com> 写道:
>
>  Thread类有个方法是setDaemon,我看帮助文档上说"A thread can be flagged as a ``daemon
> thread''. The significance of this flag is that the entire Python program
> exits when only daemon threads are
> left".我的理解是如果python程序中,只剩daemon线程的化,那么整个程序会exit.
> 按照这个理解,我做了实验,可是每次一个线程一设置setDaemon(True),那么该线程就会立即退出,
> 似乎就没执行.有人能告诉我setDaemon的作用么?
> 我的程序如下:
>
> import threading
> def f(str):
>         for x in xrange(100000):
>                 print str
>
>
> def main():
>         t=threading.Thread(target=f,args=('1'))
>         t.start()
>         import time
>         time.sleep(1)
>         t=threading.Thread(target=f,args=('2'))
>         t.setDaemon(True)
>         t.start()
> main()
>
> 程序根本不输出'2'
>

你的程序里当线程 t.start()之后,主线程就结束了。这时只有t这么一个线程,就会退出了。

你在t.start()后面加上

import time
time.sleep(0.5)

试试。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060415/d8acde86/attachment-0001.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月15日 星期六 10:14

shhgs shhgs.efhilt at gmail.com
Sat Apr 15 10:14:36 HKT 2006

setDaemon主要是用来作子线程的

比如,主线程控制时间,到了时候就退出,这是不管daemon线程是不是运行成功,都必须结束。

或者主线程负责监听端口,子线程处理用户请求,如果主线程退出,子线程自动退出。

On 4/14/06, Jason Liu <telecomliu at gmail.com> wrote:
>
>
>
> 在06-4-15,bird devdoer <devdoer at gmail.com> 写道:
> >
> >
> > Thread类有个方法是setDaemon,我看帮助文档上说"A thread can be flagged as
> a ``daemon thread''. The significance of this flag is that the entire Python
> program exits when only daemon threads are
> left".我的理解是如果python程序中,只剩daemon线程的化,那么整个程序会exit.
> >
> 按照这个理解,我做了实验,可是每次一个线程一设置setDaemon(True),那么该线程就会立即退出,似乎就没执行.有人能告诉我setDaemon的作用么?
> > 我的程序如下:
> >
> >
> > import threading
> > def f(str):
> >         for x in xrange(100000):
> >                 print str
> >
> >
> > def main():
> >         t=threading.Thread(target=f,args=('1'))
> >         t.start()
> >         import time
> >         time.sleep(1)
> >         t=threading.Thread(target=f,args=('2'))
> >         t.setDaemon(True)
> >         t.start()
> > main()
> >
> > 程序根本不输出'2'
>
>
>
> 你的程序里当线程 t.start()之后,主线程就结束了。这时只有t这么一个线程,就会退出了。
>
> 你在t.start()后面加上
>
> import time
> time.sleep(0.5)
>
> 试试。
>
> _______________________________________________
> 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
>
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月15日 星期六 10:55

Pau Lau paulau591 at gmail.com
Sat Apr 15 10:55:34 HKT 2006

在06-4-15,shhgs <shhgs.efhilt at gmail.com> 写道:
>
> setDaemon主要是用来作子线程的
>
> 比如,主线程控制时间,到了时候就退出,这是不管daemon线程是不是运行成功,都必须结束。
>
> 或者主线程负责监听端口,子线程处理用户请求,如果主线程退出,子线程自动退出。
>
> On 4/14/06, Jason Liu <telecomliu at gmail.com> wrote:
> >
> >
> >
> > 在06-4-15,bird devdoer <devdoer at gmail.com> 写道:
> > >
> > >
> > > Thread类有个方法是setDaemon,我看帮助文档上说"A thread can be flagged as
> > a ``daemon thread''. The significance of this flag is that the entire
> Python
> > program exits when only daemon threads are
> > left".我的理解是如果python程序中,只剩daemon线程的化,那么整个程序会exit.
> > >
> > 按照这个理解,我做了实验,可是每次一个线程一设置setDaemon(True),那么该线程就会立即退出,
> 似乎就没执行.有人能告诉我setDaemon的作用么?
> > > 我的程序如下:
> > >
> > >
> > > import threading
> > > def f(str):
> > >         for x in xrange(100000):
> > >                 print str
> > >
> > >
> > > def main():
> > >         t=threading.Thread(target=f,args=('1'))
> > >         t.start()
> > >         import time
> > >         time.sleep(1)
> > >         t=threading.Thread(target=f,args=('2'))
> > >         t.setDaemon(True)
> > >         t.start()
> > > main()
> > >
> > > 程序根本不输出'2'
> >
> >
> >
> > 你的程序里当线程 t.start()之后,主线程就结束了。这时只有t这么一个线程,就会退出了。
> >
> > 你在t.start()后面加上
> >
> > import time
> > time.sleep(0.5)
> >
> > 试试。
> >
> > _______________________________________________
> > 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
> >
> >
>
> _______________________________________________
> 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
>
> 你在程序中加个t.join()就搞定了, t.setDaemon(True)的作用是使子线程听主线程的,就使说主线程死了,他的子线程就必须结束。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060415/61db55d2/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月15日 星期六 12:49

fanlix fanlix at gmail.com
Sat Apr 15 12:49:52 HKT 2006

请看py2.4中的解释,清楚很多。
  *setDaemon*(
daemonic) Set the thread's daemon flag to the Boolean value daemonic. This
must be called before start() is called.

The initial value is inherited from the creating thread. The entire Python
program exits when no active non-daemon threads are left.




在06-4-15,Pau Lau <paulau591 at gmail.com> 写道:
>
>
>
> 在06-4-15,shhgs <shhgs.efhilt at gmail.com> 写道:
>
> > setDaemon主要是用来作子线程的
> >
> > 比如,主线程控制时间,到了时候就退出,这是不管daemon线程是不是运行成功,都必须结束。
> >
> > 或者主线程负责监听端口,子线程处理用户请求,如果主线程退出,子线程自动退出。
> >
> > On 4/14/06, Jason Liu <telecomliu at gmail.com> wrote:
> > >
> > >
> > >
> > > 在06-4-15,bird devdoer <devdoer at gmail.com > 写道:
> > > >
> > > >
> > > > Thread类有个方法是setDaemon,我看帮助文档上说"A thread can be flagged as
> > > a ``daemon thread''. The significance of this flag is that the entire
> > Python
> > > program exits when only daemon threads are
> > > left".我的理解是如果python程序中,只剩daemon线程的化,那么整个程序会exit.
> > > >
> > > 按照这个理解,我做了实验,可是每次一个线程一设置setDaemon(True),那么该线程就会立即退出,
> > 似乎就没执行.有人能告诉我setDaemon的作用么?
> > > > 我的程序如下:
> > > >
> > > >
> > > > import threading
> > > > def f(str):
> > > >         for x in xrange(100000):
> > > >                 print str
> > > >
> > > >
> > > > def main():
> > > >         t=threading.Thread(target=f,args=('1'))
> > > >         t.start()
> > > >         import time
> > > >         time.sleep(1)
> > > >         t=threading.Thread(target=f,args=('2'))
> > > >         t.setDaemon(True)
> > > >         t.start()
> > > > main()
> > > >
> > > > 程序根本不输出'2'
> > >
> > >
> > >
> > > 你的程序里当线程 t.start()之后,主线程就结束了。这时只有t这么一个线程,就会退出了。
> > >
> > > 你在t.start()后面加上
> > >
> > > import time
> > > time.sleep (0.5)
> > >
> > > 试试。
> > >
> > > _______________________________________________
> > > 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
> > >
> > >
> >
> > _______________________________________________
> > 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
> >
> >  你在程序中加个t.join()就搞定了, t.setDaemon
> (True)的作用是使子线程听主线程的,就使说主线程死了,他的子线程就必须结束。
>
>
>
> _______________________________________________
> 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://lists.exoweb.net/pipermail/python-chinese/attachments/20060415/52f157ef/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月15日 星期六 13:39

bird devdoer devdoer at gmail.com
Sat Apr 15 13:39:43 HKT 2006

谢谢各位的关注~

主线程没退出,我用t.join(),还有time.sleep()都试过,还是这样.
另外,我的程序中有另一个线程在不停的输出'1'的,证明程序并没有退出.
Python的主线程即使不调用t.join()也不会退出.我发现
只有调用了setDaemon的线程没有执行.

说这么多,把代码亲自运行一下看看就知道了,不知道是不是平台的原因.

在06-4-15,Pau Lau <paulau591 at gmail.com> 写道:
>
>
>
> 在06-4-15,shhgs <shhgs.efhilt at gmail.com> 写道:
>
> > setDaemon主要是用来作子线程的
> >
> > 比如,主线程控制时间,到了时候就退出,这是不管daemon线程是不是运行成功,都必须结束。
> >
> > 或者主线程负责监听端口,子线程处理用户请求,如果主线程退出,子线程自动退出。
> >
> > On 4/14/06, Jason Liu <telecomliu at gmail.com> wrote:
> > >
> > >
> > >
> > > 在06-4-15,bird devdoer <devdoer at gmail.com > 写道:
> > > >
> > > >
> > > > Thread类有个方法是setDaemon,我看帮助文档上说"A thread can be flagged as
> > > a ``daemon thread''. The significance of this flag is that the entire
> > Python
> > > program exits when only daemon threads are
> > > left".我的理解是如果python程序中,只剩daemon线程的化,那么整个程序会exit.
> > > >
> > > 按照这个理解,我做了实验,可是每次一个线程一设置setDaemon(True),那么该线程就会立即退出,
> > 似乎就没执行.有人能告诉我setDaemon的作用么?
> > > > 我的程序如下:
> > > >
> > > >
> > > > import threading
> > > > def f(str):
> > > >         for x in xrange(100000):
> > > >                 print str
> > > >
> > > >
> > > > def main():
> > > >         t=threading.Thread(target=f,args=('1'))
> > > >         t.start()
> > > >         import time
> > > >         time.sleep(1)
> > > >         t=threading.Thread(target=f,args=('2'))
> > > >         t.setDaemon(True)
> > > >         t.start()
> > > > main()
> > > >
> > > > 程序根本不输出'2'
> > >
> > >
> > >
> > > 你的程序里当线程 t.start()之后,主线程就结束了。这时只有t这么一个线程,就会退出了。
> > >
> > > 你在t.start()后面加上
> > >
> > > import time
> > > time.sleep (0.5)
> > >
> > > 试试。
> > >
> > > _______________________________________________
> > > 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
> > >
> > >
> >
> > _______________________________________________
> > 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
> >
> >  你在程序中加个t.join()就搞定了, t.setDaemon
> (True)的作用是使子线程听主线程的,就使说主线程死了,他的子线程就必须结束。
>
>
>
> _______________________________________________
> 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://lists.exoweb.net/pipermail/python-chinese/attachments/20060415/af2ea373/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月15日 星期六 20:36

bird devdoer devdoer at gmail.com
Sat Apr 15 20:36:44 HKT 2006

问题已经解决了,感谢各位,是我搞错了,谢谢~
在06-4-15,bird devdoer <devdoer at gmail.com> 写道:
>
>  谢谢各位的关注~
>
> 主线程没退出,我用t.join(),还有time.sleep()都试过,还是这样.
> 另外,我的程序中有另一个线程在不停的输出'1'的,证明程序并没有退出.
> Python的主线程即使不调用t.join()也不会退出.我发现
> 只有调用了setDaemon的线程没有执行.
>
> 说这么多,把代码亲自运行一下看看就知道了,不知道是不是平台的原因.
>
> 在06-4-15,Pau Lau <paulau591 at gmail.com> 写道:
>
> >
> >
> > 在06-4-15,shhgs <shhgs.efhilt at gmail.com> 写道:
> >
> > > setDaemon主要是用来作子线程的
> > >
> > > 比如,主线程控制时间,到了时候就退出,这是不管daemon线程是不是运行成功,都必须结束。
> > >
> > > 或者主线程负责监听端口,子线程处理用户请求,如果主线程退出,子线程自动退出。
> > >
> > > On 4/14/06, Jason Liu <telecomliu at gmail.com> wrote:
> > > >
> > > >
> > > >
> > > > 在06-4-15,bird devdoer < devdoer at gmail.com > 写道:
> > > > >
> > > > >
> > > > > Thread类有个方法是setDaemon,我看帮助文档上说"A thread can be flagged as
> > > > a ``daemon thread''. The significance of this flag is that the
> > > entire Python
> > > > program exits when only daemon threads are
> > > > left".我的理解是如果python程序中,只剩daemon线程的化,那么整个程序会exit.
> > > > >
> > > > 按照这个理解,我做了实验,可是每次一个线程一设置setDaemon(True),那么该线程就会立即退出,
> > > 似乎就没执行.有人能告诉我setDaemon的作用么?
> > > > > 我的程序如下:
> > > > >
> > > > >
> > > > > import threading
> > > > > def f(str):
> > > > >         for x in xrange(100000):
> > > > >                 print str
> > > > >
> > > > >
> > > > > def main():
> > > > >         t=threading.Thread(target=f,args=('1'))
> > > > >         t.start()
> > > > >         import time
> > > > >         time.sleep(1)
> > > > >         t= threading.Thread(target=f,args=('2'))
> > > > >         t.setDaemon(True)
> > > > >         t.start()
> > > > > main()
> > > > >
> > > > > 程序根本不输出'2'
> > > >
> > > >
> > > >
> > > > 你的程序里当线程 t.start()之后,主线程就结束了。这时只有t这么一个线程,就会退出了。
> > > >
> > > > 你在t.start()后面加上
> > > >
> > > > import time
> > > > time.sleep (0.5)
> > > >
> > > > 试试。
> > > >
> > > > _______________________________________________
> > > > 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
> > > >
> > > >
> > >
> > > _______________________________________________
> > > 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
> > >
> > >  你在程序中加个t.join()就搞定了, t.setDaemon
> > (True)的作用是使子线程听主线程的,就使说主线程死了,他的子线程就必须结束。
> >
> >
> >
> > _______________________________________________
> > 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://lists.exoweb.net/pipermail/python-chinese/attachments/20060415/2d943856/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月15日 星期六 20:43

bird devdoer devdoer at gmail.com
Sat Apr 15 20:43:13 HKT 2006

对了,把新的验证程序帖一下.文档的说法是正确的,特别感谢*shhgs* <shhgs.efhilt at gmail.com>

import threading
import time
def f(str,times):
        for x in xrange(times):
                print str
                time.sleep(3)


def t():
        t=threading.Thread(target=f,args=('1',10))
        t.start()
        time.sleep(0)
        t=threading.Thread(target=f,args=('2',20))
        t.setDaemon(True)
        t.start()
        #t.join()
        #t1.join()
t()
在06-4-15,bird devdoer <devdoer at gmail.com> 写道:
>
>
> 问题已经解决了,感谢各位,是我搞错了,谢谢~
>
> 在06-4-15,bird devdoer <devdoer at gmail.com> 写道:
> >
> >  谢谢各位的关注~
> >
> > 主线程没退出,我用t.join(),还有time.sleep()都试过,还是这样.
> > 另外,我的程序中有另一个线程在不停的输出'1'的,证明程序并没有退出.
> > Python的主线程即使不调用t.join()也不会退出.我发现
> > 只有调用了setDaemon的线程没有执行.
> >
> > 说这么多,把代码亲自运行一下看看就知道了,不知道是不是平台的原因.
> >
> > 在06-4-15,Pau Lau <paulau591 at gmail.com> 写道:
> >
> > >
> > >
> > > 在06-4-15,shhgs <shhgs.efhilt at gmail.com> 写道:
> > >
> > > > setDaemon主要是用来作子线程的
> > > >
> > > > 比如,主线程控制时间,到了时候就退出,这是不管daemon线程是不是运行成功,都必须结束。
> > > >
> > > > 或者主线程负责监听端口,子线程处理用户请求,如果主线程退出,子线程自动退出。
> > > >
> > > > On 4/14/06, Jason Liu <telecomliu at gmail.com> wrote:
> > > > >
> > > > >
> > > > >
> > > > > 在06-4-15,bird devdoer < devdoer at gmail.com > 写道:
> > > > > >
> > > > > >
> > > > > > Thread类有个方法是setDaemon,我看帮助文档上说"A thread can be flagged as
> > > > > a ``daemon thread''. The significance of this flag is that the
> > > > entire Python
> > > > > program exits when only daemon threads are
> > > > > left".我的理解是如果python程序中,只剩daemon线程的化,那么整个程序会exit.
> > > > > >
> > > > > 按照这个理解,我做了实验,可是每次一个线程一设置setDaemon(True),那么该线程就会立即退出,
> > > > 似乎就没执行.有人能告诉我setDaemon的作用么?
> > > > > > 我的程序如下:
> > > > > >
> > > > > >
> > > > > > import threading
> > > > > > def f(str):
> > > > > >         for x in xrange(100000):
> > > > > >                 print str
> > > > > >
> > > > > >
> > > > > > def main():
> > > > > >         t=threading.Thread(target=f,args=('1'))
> > > > > >         t.start()
> > > > > >         import time
> > > > > >         time.sleep(1)
> > > > > >         t= threading.Thread(target=f,args=('2'))
> > > > > >         t.setDaemon(True)
> > > > > >         t.start()
> > > > > > main()
> > > > > >
> > > > > > 程序根本不输出'2'
> > > > >
> > > > >
> > > > >
> > > > > 你的程序里当线程 t.start()之后,主线程就结束了。这时只有t这么一个线程,就会退出了。
> > > > >
> > > > > 你在t.start()后面加上
> > > > >
> > > > > import time
> > > > > time.sleep (0.5)
> > > > >
> > > > > 试试。
> > > > >
> > > > > _______________________________________________
> > > > > 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
> > > > >
> > > > >
> > > >
> > > > _______________________________________________
> > > > 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
> > > >
> > > >  你在程序中加个t.join()就搞定了, t.setDaemon
> > > (True)的作用是使子线程听主线程的,就使说主线程死了,他的子线程就必须结束。
> > >
> > >
> > >
> > > _______________________________________________
> > > 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://lists.exoweb.net/pipermail/python-chinese/attachments/20060415/08e2baea/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月16日 星期日 14:58

Jason Liu telecomliu at gmail.com
Sun Apr 16 14:58:45 HKT 2006

在06-4-15,bird devdoer <devdoer at gmail.com> 写道:
>
>  谢谢各位的关注~
>
> 主线程没退出,我用t.join(),还有time.sleep()都试过,还是这样.
> 另外,我的程序中有另一个线程在不停的输出'1'的,证明程序并没有退出.
> Python的主线程即使不调用t.join()也不会退出.我发现
> 只有调用了setDaemon的线程没有执行.
>
> 说这么多,把代码亲自运行一下看看就知道了,不知道是不是平台的原因.
>
>


如果你的程序里还有一个非Daemon的线程在运行,主线程当然不会退出了。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060416/7e73e3ad/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月16日 星期日 19:21

Pau Lau paulau591 at gmail.com
Sun Apr 16 19:21:00 HKT 2006

在06-4-16,Jason Liu <telecomliu at gmail.com> 写道:
>
>
>
>  在06-4-15,bird devdoer <devdoer at gmail.com> 写道:
>
> >  谢谢各位的关注~
> >
> > 主线程没退出,我用t.join(),还有time.sleep()都试过,还是这样.
> > 另外,我的程序中有另一个线程在不停的输出'1'的,证明程序并没有退出.
> > Python的主线程即使不调用t.join()也不会退出.我发现
> > 只有调用了setDaemon的线程没有执行.
> >
> > 说这么多,把代码亲自运行一下看看就知道了,不知道是不是平台的原因.
> >
> >
>
>
> 如果你的程序里还有一个非Daemon的线程在运行,主线程当然不会退出了。
>
>
>
> _______________________________________________
> 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://lists.exoweb.net/pipermail/python-chinese/attachments/20060416/10d7b895/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号