我第一次使用线程,在python2.7中。我正在寻找以下两种技术中哪一种更可取的指导,以及原因。技术2是在大多数在线教程中给出的。但是我错误地尝试了技术1,而且它也起了作用。技术1:
import threading
def worker(number):
print ('I am thread: ' + str(number) + '\n')
thread_list = []
for i in range(4):
thread = threading.Thread(target=worker(i))
thread_list.append(thread)
thread.start()
技术2:
import threading
def worker(number):
print ('I am thread: ' + str(number) + '\n')
thread_list = []
for i in range(4):
thread = threading.Thread(target=worker, args=(i,))
thread_list.append(thread)
thread.start()
发布于 2022-11-02 12:34:11
下面的代码不会在新线程中调用worker()
:
thread = threading.Thread(target=worker(i))
下面是Python如何解释上面的代码:
worker(i)
.worker(i)
返回None
.因此,实际上,None
被分配给target
,如下所示:
thread = threading.Thread(target=None)
因此,启动下面的新线程实际上什么也不做:
thread.start()
This answer也解释了你的帖子。
https://stackoverflow.com/questions/51684169
复制相似问题