博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
全局变量在多个进程中不共享
阅读量:6819 次
发布时间:2019-06-26

本文共 917 字,大约阅读时间需要 3 分钟。

import timefrom multiprocessing import Processmoney = 100def run1():    global money #在进程中无法使用全局变量    money = 200    for i in range(3):        # print("sunck is a good man")        time.sleep(1)    print("run1------money:", money)def run2():    money = 300    for i in range(5):        # print("kaige is a cool man")        time.sleep(1)    print("run2------money:", money)if __name__ == "__main__":    t1 = time.time()    #在创建子进程时会将主进程的资源拷贝到子进程中,子进程单独有一份主进程中的数据,相互不应响应    pro1 = Process(target=run1, args=())    pro2 = Process(target=run2, args=())    pro1.start()    pro2.start()    pro1.join()    pro2.join()    print("main-----mony:", money)    t2 = time.time()    print("耗时:%2f"%(t2-t1))
run1------money: 200run2------money: 300main-----mony: 100耗时:5.236128

 主进程文件里定义变量money,子进程run1,run2里可以访问变量money,但是不可以修改,原理是创建子进程是会将主进程的资源copy一份给子进程,子进程可以访问主进程的资源,但是没有修改的权限。

转载于:https://www.cnblogs.com/wuygblog/p/10759008.html

你可能感兴趣的文章
Linux学习记录--日志系统
查看>>
什么是OTT
查看>>
大型互联网站解决高并发的常见策略
查看>>
Apache Rewrite
查看>>
UML学习笔记(7)——时序图
查看>>
python爬虫基础
查看>>
Java 单例模式 学习
查看>>
Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
查看>>
ubuntu LTSP 无盘多终端ubuntu系统
查看>>
phpstorm支持CodeIgniter自动补全
查看>>
linux磁盘批量分区格式化和挂载脚本
查看>>
第一次尝试OSCHINA博客平台
查看>>
常用html、CSS、javascript前端命名规范
查看>>
EasyMock 用法
查看>>
postgresql事务处理与并发控制
查看>>
使用Apache的ab工具对比Nginx与Apache静态页面处理能力
查看>>
linux基本命令之用户篇
查看>>
C语言基于GTK+Libvlc实现的简易视频播放器(二)
查看>>
android自定义view无法预览
查看>>
时间格式2016-12-12 12:32:12.0带毫秒转换正常yyyy-MM-dd HH:mm:ss
查看>>