请问:关于线程Thread

请问:关于线程Thread

小女子又要向各位前辈请教了~~

我是用threading.Thread继承的方式来创建线程的。比如在主线程中,我让一个子线程用mythread.join()的方式先运行完,之后是不是表示这个子线程已经死了? 不知Python是不是像C++那样,还需要释放内存空间吗?

小女子在此先谢谢各位的帮助了!
一般不需要,程序结束会自动释放。

不过建议还是自己手动下,养成好习惯
只要对象引用为零就释放了吧,

不过mythread.join()好像是block主线程来等待子线程结束, 你不mythread.start(),怎么用mythread.join()呢,

mythread.start()结束后应该应用就为0乐,回自己释放的,和join()没关系,

我是这么感觉的,


QUOTE:
原帖由 xiaoyu9805119 于 2008-7-29 08:58 发表
一般不需要,程序结束会自动释放。

不过建议还是自己手动下,养成好习惯

那么请问你,我该如何手动释放呢?用什么方法释放内存?
谢谢你了!


QUOTE:
原帖由 8913845 于 2008-7-29 09:22 发表
只要对象引用为零就释放了吧,

不过mythread.join()好像是block主线程来等待子线程结束, 你不mythread.start(),怎么用mythread.join()呢,

mythread.start()结束后应该应用就为0乐,回自己释放的,和joi ...

对呀,之前当然先通过mythread.start()让它run。这个Thread里,我有一个while Value:循环。通常情况Value为True,它会一直不停地运行下去,直到我把Value的值改为False,然后通过mythread.join()来等待这个线程死掉。

不太明白的是,这种情况下线程死掉后,需不需要如同C++那样 ,要释放内存空间,而且该如何释放内存空间,用哪种方法?

因为在这个线程死掉以后,我需要做点其它的处理,然后再重新建立一个一样的线程,直到需要的时候更改Value的值,让它再死。做一些处理后,又建一个。。。。一直这样下去。所以需不需要释放内存对我来说,很重要了。


QUOTE:
原帖由 雪堡的天空 于 2008-7-28 23:23 发表
小女子又要向各位前辈请教了~~
我让一个子线程用mythread.join()的方式先运行完   不知Python是 ...

子线程会在mythread.join()的地方等待mythread执行结束继续执行,我的理解是没有死。
join之后此线程休眠了,并不是死了,可以被唤醒,如果以后直到程序结束不唤醒它,它就长眠了
我觉得比如你以前的thread名字叫tt,
线程结束后,你重新建一个线程名字也叫tt,那以前那个线程就没有名字引用,应该就自动释放了吧,

所以重复建立线程应该是可以的吧,我觉得


QUOTE:
原帖由 luffy.deng 于 2008-7-29 21:45 发表

子线程会在mythread.join()的地方等待mythread执行结束继续执行,我的理解是没有死。

可能是我没有表达清楚。这个子线程就是mythread。是在主线程或者其它线程中执行mythread.join()。


QUOTE:
原帖由 rolltech 于 2008-7-29 23:57 发表
join之后此线程休眠了,并不是死了,可以被唤醒,如果以后直到程序结束不唤醒它,它就长眠了

休眠了?那该用什么方式唤醒它呢?如果照你说,整个程序结束依然没有唤醒它,它就长眠了,是不是表示内存不将被释放?

Join后我试过用.isAlive()来测试,结果是False,这会不会表示它已经死掉了?