Python多线程如何使用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天小编给大家分享一下Python多线程如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了
千家信息网最后更新 2026年11月02日Python多线程如何使用
今天小编给大家分享一下Python多线程如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
一,实用方法
1.线程之间执行是无序的,cpu调度哪个线程就执行哪个线程;
2.主线程等待所有子线程结束后再结束,设置守护线程可以实现当主线程结束时子线程立马结束;
3.设置守护线程:1.
threading.Thread(daemon=True),2.线程对象.setDaemon(True);4.线程之间共享全局变量,存在资源竞争问题。
'''线程之间执行是无序的,cpu调度哪个线程就执行哪个线程主线程会等待所有子线程结束之后再结束,设置守护线程可以实现当主线程结束时子线程立马结束设置守护线程:1.threading.Thread(daemon=True),2.线程对象.setDaemon(True)线程之间共享全局变量,存在资源竞争问题''' # 导入模块(模块名.py,包名init.py)import threadingimport time def task1(count): # 获取当前线程对象 # t=threading.current_thread() # print('Task1_name:',t.name) print() for i in range(count): print('Task A ',i+1) time.sleep(0.5) def task2(content,count): print('Task2_name:', threading.current_thread().name) for i in range(count): print(f'{content}__Task B ',i+1) time.sleep(0.5) if __name__ == '__main__': t1=threading.Thread(target=task1,name='T1',daemon=True,args=(5,)) t2=threading.Thread(target=task2,name='T2',kwargs={'content':'Yes','count':5}) # 设置守护主线程的第二种方式 # t1.setDaemon(True) t2.setDaemon(True) t1.start() t1.join() # 阻塞函数,t1执行完毕才会向下执行 t2.start() # t2.join() print('Main thread over')二、补充:Python多线程共享变量资源竞争问题
1.资源竞争问题:sum+=1执行时大致会分为三步(取值、加1、写回),可能刚执行2步cpu就去切换到了另一个线程去执行;
2.解决办法:1.使用join()方法来设置线程同步(效率不高),2.加锁(可以保证同一时刻只有一个线程在执行) 。
'''资源竞争问题:sum+=1执行时大致会分为三步(取值、加1、写回),可能刚执行2步cpu就去切换到了另一个线程去执行解决办法:1.使用join()方法来设置线程同步(效率不高),2.加锁(可以保证同一时刻只有一个线程在执行)''' import threadingimport time sum=0lock=threading.Lock() def add_num1(): global sum for i in range(1000000): # lock.acquire() # 加锁 sum+=1 # lock.release() # 解锁 print(f'{threading.current_thread().name}的计算结果是{sum}') def add_num2(): global sum for i in range(1000000): # lock.acquire() sum+=1 # lock.release() print(f'{threading.current_thread().name}的计算结果是{sum}') if __name__ == '__main__': t1=threading.Thread(target=add_num1) t2=threading.Thread(target=add_num2) t1.start() # 设置阻塞函数,设置线程同步 t1.join() t2.start() print(f'Main的sum值是{sum}')以上就是"Python多线程如何使用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
线程
资源
问题
竞争
之间
知识
篇文章
变量
对象
方法
同步
全局
内容
函数
办法
只有
效率
时刻
模块
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海挚品互联网科技有限公司
喔噻互联网科技有限公司
伟宏互联网科技
互联网电商科技
金融科技还是互联网
互联网中国科技
互联网科技的
互联网金融 金融科技
米客互联网科技
互联网金融监管科技
互联网系的金融科技公司
河南猎农互联网科技有限公司
南平创想时代互联网科技有限公司
阿大互联网科技有限公司
链环科技传统企业怎么转型互联网
浙南科技城互联网大厦建设工程
爱医互联网络科技
群盈汇互联网科技有限公司
网互联网络科技
瑞安市蟠桃会互联网科技有限公司
互联网科技保险
互联网科技的
互联网 的科技创新
时间互联网络科技
互联网科技公司做什么
杭州披云加互联网科技有限公司
萌小萌互联网科技河南有限公司
互联网时代科技型公司的机会
平安好医生打造互联网科技医疗
前海云享互联网科技