gpt4 book ai didi

python - 无法在Python中创建线程

转载 作者:行者123 更新时间:2023-11-30 23:44:02 24 4
gpt4 key购买 nike

我有以下代码来比较用户输入

import thread,sys
if(username.get_text() == 'xyz' and password.get_text()== '123' ):
thread.start_new_thread(run,())

def run():
print "running client"
start = datetime.now().second
while True:
try:
host ='localhost'
port = 5010
time = abs(datetime.now().second-start)
time = str(time)
print time
client = socket.socket()
client.connect((host,port))
client.send(time)
except socket.error:
pass

如果我只是调用函数 run() 它可以工作,但是当我尝试创建一个线程来运行该函数时,由于某种原因,该线程未创建且 run() 函数未执行,我无法找到任何错误..

提前致谢...

最佳答案

你真的应该使用threading模块而不是thread

你还在做什么?如果你创建一个这样的线程,那么无论该线程是否仍在运行,解释器都会退出

例如:

import thread
import time

def run():
time.sleep(2)
print('ok')

thread.start_new_thread(run, ())

--> 这会产生:

Unhandled exception in thread started by 
sys.excepthook is missing
lost sys.stderr

其中:

import threading
import time

def run():
time.sleep(2)
print('ok')

t=threading.Thread(target=run)
t.daemon = True # set thread to daemon ('ok' won't be printed in this case)
t.start()

按预期工作。如果您不想让解释器等待线程,只需在生成的线程上设置 daemon=True* 即可。

*编辑:在示例中添加

关于python - 无法在Python中创建线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10364173/

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