Python多线程threading创建及使用方法解析
更新时间:2020年06月17日 09:31:15 作者:吞风吻雨ii
这篇文章主要介绍了Python多线程threading创建及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一、线程创建方法
1. 普通创建
import threading
def run(name):
for i in range(3):
print(name)
if __name__ == '__main__':
t1 = threading.Thread(target=run, args=("t1",))
t2 = threading.Thread(target=run, args=("t2",))
t1.start()
t2.start()
--------------------------------------------
t1
t2
t2
t1
t2
t1
2. 自定义线程类
import threading
class MyThread(threading.Thread):
def __init__(self, name):
super(MyThread, self).__init__()
self.name = name
def run(self):
for i in range(3):
print(self.name)
if __name__ == "__main__":
t1 = MyThread("t1")
t2 = MyThread("t2")
t1.start()
t2.start()
二、线程的使用
1.守护线程
子线程会随着主线程的结束而结束
t = threading.Thread(target=run, args=("t1",))
t.setDaemon(True) # 把子进程设置为守护线程,必须在start()之前设置
t.start()
2.主线程等待子线程结束
t = threading.Thread(target=run, args=("t1",))
t.setDaemon(True)
t.join() # 设置主线程等待子线程结束
t.start()
3.互斥锁
from threading import Thread,Lock n = 10 def run(): global n locker.acquire() n -= 1 locker.release() if __name__ == '__main__': locker = Lock() t1 = Thread(target=run) t2 = Thread(target=run) t1.start() t2.start()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
今天小编就为大家分享一篇python+opencv 读取文件夹下的所有图像并批量保存ROI的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-01-01
Sublime Text4 配置 Python3 环境、代码提示、编译报错的解决方案
这篇文章主要介绍了Sublime Text4 配置 Python3 环境、代码提示、编译报错教程,通过图文并茂的形式给大家介绍了配置自动代码提示的方法,需要的朋友可以参考下2022-01-01


最新评论