多线程-共享全局变量(python版)
来源:互联网 发布:逆战刷箱子淘宝 编辑:程序博客网 时间:2024/05/21 18:35
多线程-共享全局变量from threading import Threadimport timeg_num = 100def work1(): global g_num for i in range(3): g_num += 1 print("----in work1, g_num is %d---"%g_num)def work2(): global g_num print("----in work2, g_num is %d---"%g_num)print("---线程创建之前g_num is %d---"%g_num)t1 = Thread(target=work1)t1.start()#延时一会,保证t1线程中的事情做完time.sleep(1)t2 = Thread(target=work2)t2.start()
运行结果:---线程创建之前g_num is 100-------in work1, g_num is 103-------in work2, g_num is 103---
列表当做实参传递到线程中from threading import Threadimport timedef work1(nums): nums.append(44) print("----in work1---",nums)def work2(nums): #延时一会,保证t1线程中的事情做完 time.sleep(1) print("----in work2---",nums)g_nums = [11,22,33]t1 = Thread(target=work1, args=(g_nums,))t1.start()t2 = Thread(target=work2, args=(g_nums,))t2.start()
运行结果:----in work1--- [11, 22, 33, 44]----in work2--- [11, 22, 33, 44]
总结:
- 在一个进程内的所有线程共享全局变量,能够在不适用其他方式的前提下完成多线程之间的数据共享(这点要比多进程要好)
- 缺点就是,线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全)
阅读全文
0 0
- 多线程-共享全局变量(python版)
- python中的多线程-共享全局变量
- 【python】多线程共享全局变量问题
- 多线程-非共享数据(python 版)
- Java多线程共享全局变量问题
- python:线程的使用、线程共享全局变量、列表作为参数(全局变量)、避免全局变量被修改
- python通过配置文件共享全局变量
- python unittest TestCase间共享数据(全局变量的使用)
- Python 多进程默认不能共享全局变量
- Python 进程之间共享数据(全局变量)
- Python 进程之间共享数据(全局变量)
- Python多线程下的全局变量、局部变量
- 多线程学习之一:线程对共享全局变量的访问
- 用关中断和互斥量来保护多线程共享的全局变量
- 多进程修改全局变量(python版)
- python中如何在不同文件间共享全局变量
- python中如何在不同文件间共享全局变量
- python在不同文件之间共享全局变量方案的探讨
- 游戏内统一支付系统设计与实现
- Spark存储与读取文件方法小结
- Twemproxy+ssdb双主配置
- eXtremeDB内存数据库7.0新版本的强大功能加强了它在物联网的关键作用
- Java并发编程(四)未处理异常、线程池和ThreadLocal类
- 多线程-共享全局变量(python版)
- 事务
- 前端笔记
- Android的ProgressBar详解
- 双亲委派机制
- [Java]Http请求的工具类
- 腾讯信鸽错误码
- shell脚本出现莫名其妙的错误!可能是win中的^M 符号导致
- Cg语言中文说明文档(五)