python3 多线程执行后再执行主线程的问题

python3下如何在所有子线程执行完毕后再运行主线程?
下边是我的代码,再此基础上应该如何修改?
我程序大概意思就是:
先进行for 循环,每次循环创建1个线程,然后都执行func1这个函数,每次循环传递给func1的参数都不同,
我想在所有子线程运行结束后,再执行下边的代码,请高手帮忙,如何在我代码基础上进行修改?

图片说明

4个回答

import threading
def pr(i):
print(i)
thread = []

for i in list(range(100)):
k = threading.Thread(target=pr, args=(i,))
thread.append(k)

for j in thread:
j.start()
for k in thread:
k.join()
print('已经完成了?')
你测试一下这个代码,‘已经完成了’是在打印0-99之后才显示出来的

直接在下面写你要执行的语句就行了,for语句没执行完之前是不会跳出for语句的,所以在for语句外面写你要执行的代码
放心,一定是for语句完成之后,才执行下面的语句

lgyt240054
EuclideanSpace 回复gjfvip123: 问题解决了没?
一年多之前 回复
lgyt240054
EuclideanSpace 回复gjfvip123: 多线程就是这样的了
一年多之前 回复
gjfvip123
gjfvip123 可是我测试的时候确实一下子就到 结尾的代码了。。。
一年多之前 回复

不过你硬要改的话
thread = []

for i in range(count):
item update........省略
k = threading.Thread(target = cat.zong,args = (写上你的参数,))
thread.append(k)

for j in thread:
j.start()
for k in thread: 改成这样子比较好
k.join()

写下你的要执行的语句

lgyt240054
EuclideanSpace 回复gjfvip123: 对的,哈哈,target是我的代码的函数,我复制过来忘改了
一年多之前 回复
gjfvip123
gjfvip123 k = threading.Thread(target =func1,args = (参数,)) ,thread.append(k) 是在每次循环中插入一个线程的意思吧。。。
一年多之前 回复
gjfvip123
gjfvip123 k = threading.Thread(target =func1,args = (参数,))
一年多之前 回复

对的,哈哈,target是我的代码函数的参数,我复制过来忘改了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!