gpt4 book ai didi

python - 了解线程

转载 作者:太空狗 更新时间:2023-10-29 21:42:20 24 4
gpt4 key购买 nike

试图让我的头脑围绕线程。在我的代码中,当我认为它应该直接进入第二个线程时,它只触发一个线程。我一直在阅读有关锁和分配的信息,但不太明白。我需要做什么才能让 2 个线程同时独立运行?

import thread

def myproc(item):
print("Thread fired for " + item)
while True:
pass

things = ['thingone', 'thingtwo']

for thing in things:
try:
thread.start_new_thread(myproc(thing))

except:
print("Error")

最佳答案

您对 start_new_thread 的签名有误。您正在调用 myproc 并将结果作为参数传递给 start_new_thread,这永远不会发生,因为 myproc 永远不会终止。

相反,它应该是:

thread.start_new_thread(myproc, (thing,) )

第一个参数是函数(即函数对象,而不是调用函数),第二个是参数元组。

参见:https://docs.python.org/2/library/thread.html#thread.start_new_thread

一旦您的程序实际启动了两个线程,您可能希望在最后添加一个暂停,因为线程将在主线程完成时终止。

此外,请考虑使用 threading 模块而不是 thread 模块,因为它提供了一个更好的更高级别的接口(interface),例如一种方便的方式来等待您的线程已完成执行。

参见:https://docs.python.org/2/library/threading.html#module-threading

关于python - 了解线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36089071/

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