gjfvip123
gjfvip123
采纳率37.7%
2018-05-16 01:40 浏览 4.3k

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

5

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

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答 默认 最新

  • 已采纳
    lgyt240054 EuclideanSpace 2018-05-16 02:21

    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之后才显示出来的

    点赞 评论 复制链接分享
  • lgyt240054 EuclideanSpace 2018-05-16 02:07

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

    点赞 评论 复制链接分享
  • lgyt240054 EuclideanSpace 2018-05-16 02:12

    不过你硬要改的话
    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 2018-05-16 02:18

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

    点赞 评论 复制链接分享

相关推荐