python thread 共享数据
当在函数内部使用变量时,会首先在函数内部查找局部变量,如果找不到再去全局查找
1.函数内部找到
number=1 #全局变量def testGlobal():number=2 #局部变量return numbernum=testGlobal()
print(f"局部number:{num}") # 2
print(f"全局number:{number}") # 1
2.全局找到
number=1 #全局变量def testGlobal():return numbernum=testGlobal()
print(f"局部number:{num}") # 1
print(f"全局number:{number}") # 1
3.global
如果在函数内部直接使用全局变量,则需要使用global
关键字
number=1 #全局变量def testGlobal():global number#告诉编译器我这里的number指的是全局变量numbernumber=2return numbernum=testGlobal()
print(f"局部number:{num}") # 2
print(f"全局number:{number}") # 2
线程共享全局变量,包括普通变量,列表,字典等
from threading import Thread
import timeg_num = 100def work1():global g_numg_num += 1print(f"work1, g_num:{g_num}")def work2():global g_numprint(f"work2, g_num:{g_num}")t1 = Thread(target=work1)
t1.start() # work1, g_num:101time.sleep(1) #保证t1线程中的事情做完t2 = Thread(target=work2)
t2.start() # work2, g_num:101
2.线程安全
https://docs.python.org/3/glossary.html#term-global-interpreter-lock
https://blog.csdn.net/u010649766/article/details/79740873
http://effbot.org/pyfaq/what-kinds-of-global-value-mutation-are-thread-safe.htm
参考:
https://www.jb51.net/article/184927.htm
python thread 共享数据相关推荐
- python manager 共享数据访问_python 进程间数据共享multiProcess.Manger实现解析
一.进程之间的数据共享 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据. 这样极大地减少了对使用锁定和其他同步手段的需求, ...
- 【Python网络编程和并发-多线程共享数据混乱引出同步锁】
38_第五章-多线程共享数据混乱引出同步锁 一.上节回顾 总结 在一个进程内的所有线程共享全局变量,能够在部使用其他方式的前提下完成多线程之间的数据共享(这点要比多进程更好) 缺点就是,线程对全局变量 ...
- python跨文件全局变量_Python 进程之间共享数据(全局变量)的方法
进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的值,主进程跟着改变 if __name__= ...
- Python 进程之间共享数据(全局变量)
Python 进程之间共享数据(全局变量) 进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的 ...
- python—多线程之线程之间共享数据(Queue)
一.Queue理解 从一个线程向另一个线程发送数据最安全的方式可能就是使用queue库中的队列了.创建一个被多个线程共享的Queue对象,这些线程通过使用put()和get()操作来向队列中添加或者删 ...
- python 多进程共享变量manager_python 进程间共享数据 multiprocessing 通信问题 — Manager...
Python中进程间共享数据,处理基本的queue,pipe和value+array外,还提供了更高层次的封装.使用multiprocessing.Manager可以简单地使用这些高级接口. Mana ...
- python并发处理list数据_python并发编程之多进程2--------数据共享及进程池和回调函数...
一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...
- python进程共享全局变量 时延_Python 进程之间共享数据(全局变量)的方法
进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的值,主进程跟着改变 if __name__= ...
- 多线程-非共享数据(python 版)
多线程-非共享数据 对于全局变量,在多线程中要格外小心,否则容易造成数据错乱的情况发生 1. 非全局变量是否要加锁呢? #coding=utf-8import threadingimport time ...
最新文章
- 再见了Redis!这个数据库有点厉害,甚至碾压了Oracle!
- 深入理解IPyton以及Jupyter Notebook中的%time以及%timeit的作用
- Date 和 SimpleDateFormat 类表示时间
- 阿里内网热搜开发者工具在线教程推荐
- python装饰器模块加载后的若干解释
- 搭量化数据库——互联网金融之三
- Android libcore添加JNI调用Hal层接口问题
- 想找一个写Wiki的工具
- Matlab 字符串比较
- Koa nuxt最佳实践前篇
- 你必须懂的 T4 模板:深入浅出
- android四大组件的作用简书,Android四大组件是什么
- 还原python源码_python 的混淆后的代码可以还原么
- mac搜索不到wifi wtg_如何设置隐藏wifi 防止蹭网隐藏wifi方法【详解】
- 2019年上半年 系统分析师 论文 真题
- 助力社区防疫,百数提供了一款管理系统模板
- 奶牛戴上VR眼镜“看片”,开心了可以多产奶:俄罗斯官方做了实验,拯救奶牛的冬季忧郁...
- 【云驻共创】当HarmonyOS走进课堂是种什么体验
- YOLO3-WIN10-GPU版配置详细教程
- 信创操作系统--麒麟Kylin桌面操作系统 (项目十 安全中心)
热门文章
- 转:Discuz!NT负载均衡解决方案(HA)之---LVS(Linux Virtual Server)
- php去掉 x5E,清除wordpress里PHP文件恶意代码
- mysql存储过程 try_mysql存储过程之异常处理篇
- cstring::replace不区分大小写_Excel VBA之函数篇-3.11订单号千奇百怪,如何按照结构区分来源...
- 语料库python_NLPPython笔记——语料库
- jemeter python接口自动化测试平台_WEB接口开发与自动化测试基于PYTHON语言PDF_Python教程...
- 使用Python简单模拟Linux系统的tree工具
- DN服务器修改配置文件,LDIF修改LDAP记录或配置示例
- 18年5年制计算机辅助考试题,2018年自考《计算机辅助教育》试题二
- csv java 科学计数法_javaweb开发页面数字过长显示科学计数法的问题