我在自学 python 多线程的时候,遇到一个很莫名其妙的问题。大家请看代码
from threading import Thread
import time
class MyThread(Thread):
def run(self):
print ' I am a thread.'
def bar():
for i in xrange(5):
time.sleep(1)
print i
t1 = MyThread(target=bar)
t1.start()
结果:
I am a thread.
我凑,bar 没有执行。。。。
我也知道问题在哪,是因为 MyThread 里面的 run,子类没法调用 Thread 里面的 run。但是,我用了一个在 bar 后面,加了一个(),就能运行 bar(),哪位大神能解答一下。。。代买如下。
from threading import Thread
import time
class MyThread(Thread):
def run(self):
print ' I am a thread.'
def bar():
for i in xrange(5):
time.sleep(1)
print i
t1 = MyThread(target=bar()) #主要区别就在加了一个().....
t1.start()
结果:
0
1
2
3
4
I am a thread.
这个神奇的 ()....