gpt4 book ai didi

python - 使用 thread.start_new_thread() 在 Python 2.6 中进行简单线程处理

转载 作者:太空狗 更新时间:2023-10-29 17:21:51 25 4
gpt4 key购买 nike

我正在学习有关简单线程的教程。他们给出了这个例子,当我尝试使用它时,我从解释器那里得到了无法理解的错误。你能告诉我为什么这不起作用吗?我在 WinXP SP3 w/Python 2.6 current

import thread

def myfunction(mystring,*args):
print mystring


if __name__ == '__main__':

try:

thread.start_new_thread(myfunction,('MyStringHere',1))

except Exception as errtxt:
print errtxt

执行此结果::

启动的线程中出现未处理的异常sys.excepthook 错误:

原来的异常(exception)是:

错误中缺失的信息实际上在输出中缺失。

最佳答案

问题是你的主线程在你的新线程来得及完成之前就已经退出了。解决方案是在您的主线程中等待。

import thread, time

def myfunction(mystring,*args):
print mystring


if __name__ == '__main__':

try:

thread.start_new_thread(myfunction,('MyStringHere',1))

except Exception, errtxt:
print errtxt

time.sleep(5)

作为旁注,您可能想要使用线程模块。您的主线程将等待所有这些类型的线程在退出前关闭:

from threading import Thread

def myfunction(mystring,*args):
print mystring


if __name__ == '__main__':

try:
Thread(target=myfunction, args=('MyStringHere',1)).start()
except Exception, errtxt:
print errtxt

关于python - 使用 thread.start_new_thread() 在 Python 2.6 中进行简单线程处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849674/

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