您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python threading多线程编程实例

5b51 2022/1/14 8:17:49 python 字数 2853 阅读 362 来源 www.jb51.cc/python

Python的多线程有两种实现方法: 函数,线程类 1.函数 调用thread模块中的start_new_thread()函数来创建线程,以线程函数的形式告诉线程该做什么

概述

Python 的多线程有两种实现方法

函数,线程类

1.函数

调用 thread 模块中的 start_new_thread() 函数来创建线程,以线程函数的形式告诉线程该做什么

不过这种方法暂时没能找到其他辅助方法,连主线程等待都要用 while 1 这种方法解决

2.线程类

调用 threading 模块,创建 threading.Thread 的子类来得到自定义线程类。

threading.Thread 类的可继承函数
getName() 获得线程对象名称
setName() 设置线程对象名称
join() 等待调用的线程结束后再运行之后的命令
setDaemon(bool) 阻塞模式, True: 父线程不等待子线程结束, False 等待,认为 False
isDaemon() 判断子线程是否和父线程一起结束,即 setDaemon() 设置的值
isAlive() 判断线程是否在运行

实例

join() 阻塞等待

不带 thread1.join() ,得到如下结果:

主线程等待

报错: Exception in thread T1 (most likely raised during interpreter shutdown):
也就是主线程不等待子线程就结束了。

多个子线程

这里的 t 可同时处理多个线程,即 t 为线程句柄,重新赋值不影响线程。

这里奇怪的是,运行 t.run() 时,不会再执行其他线程。虽不明,还是用 start() 吧。暂且理解为 start() 是非阻塞并行的,而 run 是阻塞的。

线程锁

threading 提供线程锁,可以实现线程同步。

得到结果:

总结

以上是编程之家为你收集整理的Python threading多线程编程实例全部内容,希望文章能够帮你解决Python threading多线程编程实例所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶