Python进阶(多线程)
2024-09-06 02:23:49
多线程结构
import threading def worker():#子线程要执行的具体逻辑代码函数
print('threading')
t1 = threading.current_thread()
time.sleep(9)#通过休眠模拟子线程异步逻辑
print(t1.getName()) new_t = threading.Thread(target=worker,name='dxc1')#构建子线程
new_t.start()#开启子线程 t = threading.current_thread()#构建主线程
print(t.getName())#主线程的代码执行不会受子线程的worker线程函数执行时间的影响
多线程隔离Local
import threading
from werkzeug.local import Local my_obj = Local()#线程隔离对象
my_obj.b = 1 def worker():#新线程工作函数
my_obj.b = 2
print('in new thread b is:' + str(my_obj.b))#新线程中b是2 new_t = threading.Thread(target=worker,name='testThread')
new_t.start()
time.sleep(1) #主线程
print('in main thread b is:' + str(my_obj.b))#主线程中b是1
多线程隔离LocalStack
import threading
from werkzeug.local import LocalStack my_stack = LocalStack()#LocalStack保证两个线程会有两个栈,相互不干扰的线程隔离对象
my_stack.push(1) #主线程
print('in main thread after push,value is:' + str(my_stack.top))#1 def worker():#新线程
print('in new thread before push,value is:' + str(my_stack.top))#None
my_stack.push(2)
print('in new thread after push,value is:' + str(my_stack.top))#2 new_t = threading.Thread(target=worker,name='testThread')
new_t.start()
time.sleep(1) #主线程
print('finally in main thread,value is' + str(my_stack.top))#1
最新文章
- subline text3 使用总结
- javascript学习笔记之array.sort
- 161230、利用代理中间件实现大规模Redis集群
- php __invoke 和 __autoload
- windows server 2003下安装iis6+php
- IIS 发布后文件拒绝访问
- 过滤菜鸟的iOS面试题-b
- log4net编译后命名空间找不到的问题
- Codeforce 221 div1
- mysql中,执行delete语句时出现Lock wait timeout exceeded问题
- Muduo阅读笔记--base(二)
- 文件首行为空白行,为什么该行字符串长度为1(line.length()=1)
- [PA 2014]Iloczyn
- 轴对称 Navier-Stokes 方程组的点态正则性准则 II
- C#中使用EntityFramework(EF)生成实体进行存储过程的调用
- curator 分布式锁InterProcessMutex
- snort帮助文档
- 多线程之Thread类
- jQuery UI 给button添加ID
- html5 canvas类库 实例
热门文章
- P3273-[SCOI2011]棘手的操作【线段树,并查集】
- Redis之品鉴之旅(五)
- java 请求第三方接口 GET\POST 实现方法
- 解决连接云服务器的redis失败
- 踩坑系列《四》a标签的href属性拼接问题
- 无法解析的外部符号之_cvLoadImage,_cvCreateMat,_cvReleaseImage之类
- After Effects 图层属性及属性组结构详解
- iNeuOS工业互联网操作系统,设备振动状态监测、预警和分析应用案例
- 未来云原生 | CIF 论坛精彩看点
- 一次简单的SQL注入绕WAF