注册 登录
编程论坛 Python论坛

python简单线程,没输出,有大神帮忙看一下吗?

qium 发布于 2022-03-06 20:37, 1039 次点击
import threading

class ThreadClass:
def __init__(self,num):
self.num = num

def run(self):
print("this is def",self.num)

n=['a','b','c','d','e']
lis=[]
for i in n:
th = threading.Thread(target=ThreadClass, args=(i))
lis.append(th)
for t in lis:
t.start()
for t in lis:
t.join()
这个代码没输出,也没报错
2 回复
#2
apull2022-03-07 10:50
ThreadClass里的run没有运行。
加一个运行函数到class外面

def runs(num):
    tc=ThreadClass(num)
    tc.run()

线程调用改为
th = threading.Thread(target=runs, args=(i))
#3
qium2022-03-08 10:47
回复 2楼 apull
多谢兄弟解答,你这样做也可以,就是我在其他网站有别人修改的代码如下,这样优化比较好。就是本着互相交流,提高一下代码思考的能力。
th = threading.Thread(target=ThreadClass.run,args=(ThreadClass(i),))
1