多线程-共享全局变量(python版)
多线程-共享全局变量
from threading import Thread
import timeg_num = 100def work1():global g_numfor i in range(3):g_num += 1print("----in work1, g_num is %d---"%g_num)def work2():global g_numprint("----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 Thread
import 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]
总结:
- 在一个进程内的所有线程共享全局变量,能够在不适用其他方式的前提下完成多线程之间的数据共享(这点要比多进程要好)
- 缺点就是,线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全)
多线程-共享全局变量(python版)相关推荐
- Python 中多线程共享全局变量的问题
Python 中多个线程之间是可以共享全局变量的数据的. 但是,多线程共享全局变量是会出问题的. 假设两个线程 t1 和 t2 都要对全局变量 g_num (默认是0)进行加1运算,t1 和 t2 都 ...
- python多线程共享全局变量_Python多线程-共享全局变量
多线程-共享全局变量 import threading import time g_num = 200 def test1(): global g_num for i in range(5): g_n ...
- python中的多线程-共享全局变量
在一个进程内的所有线程共享全局变量,能够在不适用其他方式的前提下完成多线程之间的数据共享(这点要比多进程要好) 缺点就是,线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全) 案 ...
- Python多任务(3.线程--多线程共享全局变量,利用同步解决资源竞争,利用互斥锁)
1. 线程之间是共享全局变量的 验证代码: import threading import time# 定义一个全局变量 g_num = 100def test1(): # 修改g_num的值glob ...
- 多进程之间共享全局变量 python实现
线程之间是可以正常共享全局变量的,因为是共用同一片空间的,而进程之间所使用的是不同的内存空间 所以线程之间可以共享全局变量,因为共用一片空间 不同进程使用不同的空间,所以使用的资源本质上是不同的,所以 ...
- 多线程共享全局变量以及锁机制
多线程都是在同一个进程中运行的.因此在进程中的全局变量所有线程都是共享的,这就造成一个问题,因为线程执行的顺序是无序的,有可能会造成数据错误,为了解决这个问题, threading提供了一个lock类 ...
- 多线程服务器(python 版)
多线程服务器 #coding=utf-8 from socket import * from threading import Thread from time import sleep# 处理客户端 ...
- python多线程详解 Python 垃圾回收机制
文章目录 python多线程详解 一.线程介绍 什么是线程 为什么要使用多线程 总结起来,使用多线程编程具有如下几个优点: 二.线程实现 自定义线程 守护线程 主线程等待子线程结束 多线程共享全局变量 ...
- python进程共享全局变量 时延_Python 进程之间共享数据(全局变量)的方法
进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的值,主进程跟着改变 if __name__= ...
最新文章
- 自定义模板类(循环队列)
- Image Processing Wavefronts for HEVC Parallelism
- oracle 02085,OracleDBLink创建和维护以及ORA-02085解决办法
- Markdown绘制UML图
- 中消协:视频平台不应向VIP老会员收取超前点播费
- MySQL 支持的数据类型
- 采访前高级软件工程课程学员付浩同学,及Scrum总结阅读感想
- 程序员使用未经批准的软件时会怎么样?
- HDU 6180 2017 多校训练:Schedule
- linux 连接到阿里云服务器
- quartz 的job中获取到applicationContext
- paypal android sdk,Android Paypal SDK错误:商家不接受此类付款
- html图片闪光效果,CSS实现的一闪而过的图片闪光效果
- 微信公众号1万粉丝流量主能赚多少钱?
- 使用Python爬虫自动爬取沪港通每日持股数据
- 定个理财小目标:8w到100w实盘
- pve rust 能拆家吗_文明重启有哪些游戏模式应该怎么玩
- 小龙虾炒菜机器人_“机器人”炒菜?5分钟一盘小龙虾!8分钟一份红烧肉
- 微信小程序云开发上传word文档到云存储器
- Java中的this关键字(三种用法)
热门文章
- nginx之worker进程个数
- yum时报Error: rpmdb open failed解决方法
- 前端_JavaScript_Vue
- git clone 报错 Clone failed: Authentication failed for
- javascript进阶课程--第一章--函数
- CSS魔法堂:选择器及其优先级
- 移动端开发touchstart,touchmove,touchend事件详解和项目
- UVa 1600 Patrol Robot (习题 6-5)
- 卸载VMware Server后,无法加载登录用户界面 #F#
- 分享时刻第二期:砍掉成本(1) 课后总结