Python多线程:主线程等待所有子线程结束代码

作者:woho778899 时间:2021-03-18 05:31:53 

我就废话不多说了,还是直接看代码吧!


from time import ctime
import threading
import time

def a():
    #for i in range(5):
        print('Program a is running... at ', ctime(),u'.线程名为:',threading.current_thread().name )
        time.sleep(0.2)
        
def b(x):
    #for i in range(5):
        print('Program b('+x+') is running... at ', ctime(),u'.线程名为:',threading.current_thread().name )
        time.sleep(0.1)
        

if __name__ == '__main__':
    print('Mainthread %s is running...' % threading.current_thread().name)
    thread_list = []
    for i in range(400):#同时运行多个
       t1= threading.Thread(target=a)
       thread_list.append(t1)
       
    t2 = threading.Thread(target=b, args=('Python',))
    thread_list.append(t2)
    t3 = threading.Thread(target=b, args=('Java',))
    thread_list.append(t3)
    

    for t in thread_list:
        t.setDaemon(True)  # 设置为守护线程,不会因主线程结束而中断
        t.start()
    for t in thread_list:
        t.join()  # 子线程全部加入,主线程等所有子线程运行完毕

    print('Mainthread %s ended.' % threading.current_thread().name)

补充知识:Python主线程结束为什么守护线程还在运行?

在实际的交互模式中,主线程只有在Python退出时才终止,所以action函数输出结果还是被打印出来了。”

按照我的理解应该是说,在shell里主线程在输出结果之后并没有真的结束,所以action还会打印结果。

建议把程序编译出来,放到另外的环境中测试,估计就会是你要的结果了。

来源:https://blog.csdn.net/woho778899/article/details/90691585

标签:Python,多线程,主线程,子线程
0
投稿

猜你喜欢

  • 天气预报调用代码

    2008-11-18 15:59:00
  • Python3.4学习笔记之常用操作符,条件分支和循环用法示例

    2021-08-24 03:06:43
  • 浅析vue给不同环境配置不同打包命令

    2024-04-30 08:45:59
  • Oracle数据表中的死锁情况解决方法

    2024-01-15 11:23:01
  • python利用pandas将excel文件转换为txt文件的方法

    2022-04-05 18:49:01
  • spring使用RedisTemplate操作Redis数据库

    2024-01-16 03:32:28
  • asp如何验证字符串是否包含有效字符?

    2009-11-08 19:02:00
  • Python中的fileinput模块的简单实用示例

    2023-06-19 01:09:27
  • php注册登录系统简化版

    2024-04-30 08:48:24
  • Python脚本修改阿里云的访问控制列表的方法

    2022-06-19 10:31:18
  • 一文带你吃透Golang中的类型转换

    2024-02-20 18:12:28
  • mysql二进制日志文件恢复数据库

    2024-01-16 10:55:05
  • MySQL慢查询优化之慢查询日志分析的实例教程

    2024-01-22 01:32:44
  • 使用ACCESS做网络版程序的四种解决方案

    2009-01-14 16:22:00
  • javascript 跨域问题以及解决办法

    2024-04-23 09:12:16
  • 简单谈谈Python中的模块导入

    2021-02-24 20:28:17
  • Python excel合并居中值相同的单元格实例代码

    2021-09-24 13:40:47
  • Python 函数编编程的三大法宝map+filter+reduce分享

    2022-10-17 23:37:22
  • 在Mac OS系统上安装Python的Pillow库的教程

    2021-09-29 15:03:26
  • 作为PHP程序员你要知道的另外一种日志

    2023-11-15 02:06:59
  • asp之家 网络编程 m.aspxhome.com