作者fcapba (爱你不是两三天.......)
看板Python
标题[问题] python2.7 thread 相关问题
时间Wed Jan 4 03:03:34 2012
使用python2.7写一个简单的thread程式,印出当前thread的id然後结束
code:
-----------------------------------------------------
from threading import Thread
class t(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
self.tid = Thread.get_ident()
print 'thread id is',self.tid
def kill(self):
请问这边该怎麽写? 譬如exit(self.tid)吗
if __name__ == "__main__"
go = t()
go.start()
go.kill()
-----------------------------------------------------
但是一直没办法call get_ident() 好像不支援?
再者kill thread 能用指定id的方式杀掉吗?
我知道可以使用SystemExit()不指定 但是这样好像会全部都关掉
我希望可以指定thread id关闭
请问code该怎麽修正才正确呢?
谢谢~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.25.215
1F:→ kdjf:thread应该是自己决定什麽时候结柬, 不是由主程式去砍掉 01/04 13:11
2F:→ legnaleurc:你这样是 start 之後马上 kill 掉吧 01/04 13:39
3F:→ fcapba:印完他自己的ID就结束,所以是START後直接KILL,那请问要怎麽 01/04 22:38
4F:→ fcapba:知道什麽时候自己结束? 像这边我就是想要他印完就结束... 01/04 22:39
5F:推 jlhc:请在主程式执行 go.join() 01/05 00:10
6F:→ fcapba:原来join就是让thread停止的方法吗? 感谢你~~ 01/05 00:32
7F:→ kdjf:thread的内容跑完(print完),它就自己结束了 01/05 00:33
8F:→ kdjf:go.is_alive()就可以看到False 01/05 00:34
9F:→ kdjf:如果是要长时间跑的thread,要自己留出口,跑完自己就停了 01/05 00:35
10F:→ fcapba:使用join()就会在run()执行完後,自己结束自己!! 3Q~~ 01/05 00:37
11F:→ fcapba:请问留出口是什麽意思? 01/05 00:38
12F:→ kdjf:join/thread有点像是wait/process,等到child结束才return 01/05 09:18
13F:→ kdjf:如果你的run()是无穷回圈,join就永远不会return 01/05 09:20
14F:→ fcapba:原来如此..3Q~~ 01/05 14:34