gpt4 book ai didi

python - 多线程 - join() 方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:52:32 24 4
gpt4 key购买 nike

import threading, time

class test(threading.Thread):

def __init__(self,name,delay):
threading.Thread.__init__(self)
self.name = name
self.delay = delay

def run(self):
c = 0
while True:
time.sleep(self.delay)
print 'This is thread %s on line %s' %(self.name,c)
c = c + 1
if c == 15:
print 'End of thread %s' % self.name
break

one = test('one', 1).start()
two = test('two', 3).start()

one.join()
two.join()

print 'End of main'

问题:无法使 join() 方法正常工作,出现以下错误:

Traceback (most recent call last)line 29, in <module> join() NameError: name 'join' is not defined

如果我删除:

one.join
two.join

代码运行良好。

我想打印最后一行,

print 'End of main'

两个线程结束后。我似乎无法理解为什么 join() 不是两个实例的属性?

最佳答案

one = test('one', 1).start()
two = test('two', 3).start()

您的问题是 start() 没有执行 return selfonetwo 不是线程。它们是 Nonestart() 的实际返回值。

这个有效:

one = test('one', 1)
one.start()
two = test('two', 3)
two.start()

关于python - 多线程 - join() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12762456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com