首页 / PYTHON / python--多线程
python--多线程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python--多线程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2028字,纯文字阅读大概需要3分钟。
内容图文
![python--多线程](/upload/InfoBanner/zyjiaocheng/689/4c43e3f8ce6942e2b604357eb1a2f9a9.jpg)
简单的来说明一下多线程,python多线程的支持并不友好,因为全局GIL锁(全局安全锁)的原因,只能单核使用,且每次只能运行一个线程,更多是用在IO操作上。
线程创建的两种方法
![python--多线程 - 文章图片](/upload/getfiles/0001/2021/5/3/20210503044733339.jpg)
![python--多线程 - 文章图片](/upload/getfiles/0001/2021/5/3/20210503044733349.jpg)
import threading,time#倒入线程模块 def func(name): time.sleep(1) print("hello %s" %name) if __name__=="__main__" : t=threading.Thread(target=func,args=("alex",)) t.start() print("main ending")线程创建方法一
![python--多线程 - 文章图片](/upload/getfiles/0001/2021/5/3/20210503044733339.jpg)
![python--多线程 - 文章图片](/upload/getfiles/0001/2021/5/3/20210503044733349.jpg)
#继承threading.Thread类,并重写run方法 import threading,time class Thre(threading.Thread): #def __init__(xxx):如果有参数的话,要继承父类的init方法 #super().__init__() def run(): time.sleep(1) print("hello") if __name__=="__main__":#注意使用模块的时候一定要把调用方法,放在main下 t1=Threa() t2=Threa() t1.start() t2.start() print("main ending")线程创建方式二
线程常用的几个方法:join,setDaemo,getname
# import threading # import time #join方法:只有当子线程执行完毕过后,在继续执行主线程 # # def music(): # print("begin to listen %s"%time.ctime()) # time.sleep(3) # print("stop to listen %s"%time.ctime()) # # # # # def game(): # print("begin to play game %s"%time.ctime()) # time.sleep(5) # print("stop to play game %s"%time.ctime()) # # # # # if __name__=="__main__": # p1=threading.Thread(target=music) # p2=threading.Thread(target=game) # p1.start() # p2.start() # # p2.join()#join等待线程的结束 # p1.join() # print("ending")#主线程 # #
import time import threading def Listenmusic(): print("begin to music %s"%time.ctime()) time.sleep(3) print("ending to music") def RecordBlog(): print("writen to blog") time.sleep(5) print("ending to blog") threads=[] t1=threading.Thread(target=Listenmusic) t2=threading.Thread(target=RecordBlog) threads.append(t1) threads.append(t2) if __name__=="__main__": t1.setDaemon(True)#守护线程,主线程一结束便不会执行 for t in threads: #t.setDaemon(True) #守护线程 一定在start之前设置 t.start() # print(t.getName())返回线程的名字 Thread-1 print("count",threading.active_count())#判断当前程序有多少个线程在运行 #t.join()#串行 #t.join()--->循环的最后一个参数-->t2.join if threading.active_count()==1: print("主线程allover %s"%time.ctime())
内容总结
以上是互联网集市为您收集整理的python--多线程全部内容,希望文章能够帮你解决python--多线程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。