好吧,我写了一个试图知道如何使用python线程的snappet。 但奇怪的是,以下代码在没有预期输出的情况下快速退出。 是因为我不应该通过覆盖run()方法来生成线程吗?
import threading
from time import sleep
class mythread(threading.Thread):
def __init__(self,target=None,thread_num=5):
threading.Thread.__init__(self,target=None)
self.thn = thread_num
def run(self):
for i in range(self.thn):
t = threading.Thread(target=self.myfunc)
t.start()
t.join()
myfunc(self.thn)
def myfunc(num):
print num,'\tI am doing sth.'
sleep(0.5)
print num,'\tI have done it.'
mythread()
答案 0 :(得分:5)
您需要启动该线程以使其实际执行某些操作:
t = mythread()
t.start()
如果您懒得在构造函数中接受target
参数(为什么?),则不应忽略此参数。也许你想把它传递给Thread
构造函数。 (为什么?)
答案 1 :(得分:1)
当您编写mythread()
时,您实例化该对象。将调用默认构造函数,因此将执行__init__()
。
你的构造函数没有启动线程的任何指令。