import time
from multiprocessing import Processmoney = 100def run1():global money #在进程中无法使用全局变量money = 200for i in range(3):# print("sunck is a good man")time.sleep(1)print("run1------money:", money)def run2():money = 300for 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: 200
run2------money: 300
main-----mony: 100
耗时:5.236128

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

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

全局变量在多个进程中不共享相关推荐

  1. python进程的注意点(进程之间不共享全局变量、主进程会等待所有的子进程执行结束再结束)

    1. 进程的注意点介绍 进程之间不共享全局变量 主进程会等待所有的子进程执行结束再结束 2. 进程之间不共享全局变量 import multiprocessing import time# 定义全局变 ...

  2. 【Linux 线程】同一个进程中的线程共享哪些资源

    进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线 ...

  3. Python 中多线程共享全局变量的问题

    Python 中多个线程之间是可以共享全局变量的数据的. 但是,多线程共享全局变量是会出问题的. 假设两个线程 t1 和 t2 都要对全局变量 g_num (默认是0)进行加1运算,t1 和 t2 都 ...

  4. 同一进程中的线程究竟共享哪些资源

    线程共享的环境包括:进程代码段.进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯).进程打开的文件描述符.信号的处理器.进程的当前目录和进程用户ID与进程组ID.       进程拥 ...

  5. 同一进程中线程的共享资源以及独占资源

    线程之间的共享资源以及独占资源 共享资源 独占资源 共享资源 1.进程申请的堆内存 2.进程打开的文件描述符 3.进程的全局数据(可用于线程之间通信) 4.进程ID.进程组ID 5.进程目录 6.信号 ...

  6. 同一进程中的线程究竟共享那些资源

    线程共享的环境包括:进程代码段.进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯).进程打开的文件描述符.信号的处理器.进程的当前目录和进程用户ID与进程组ID. 进程拥有这许多共性 ...

  7. linux守护进程中多线程实现,Linux下实现多线程客户/服务器

    在传统的Unix模型中,当一个进程需要由另一个实体执行某件事时,该进程派生(fork)一个子进程,让子进程去进行处理. Unix下的大多数网络服务器程序都是这么编写的,即父进程接受连接,派生子进程,子 ...

  8. 利用勾子监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理

    钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统.每当特定     的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得     到控制权.这时钩子函数即可以加工处理 ...

  9. 线程与进程之间的共享资源

    线程和进程之间的共享资源方式 进程之间的共享资源的方式 1.消息队列 2.共享内存 3.管道(有名管道.无名管道) 4.信号 5.套接字 同一个进程的不同线程之间可以共享的资源 1.堆,由于堆是在进程 ...

  10. linux进程中的内存分布

    很多小伙伴在调试C代码的时候非常痛苦,C语言不像java那样可以给你指出具体的错误地方和错误原因,C语音因为指针的特殊性和C语言版本的兼容性的需要,很难直接定位到错误的地方.特别是各种段错误.溢出等. ...

最新文章

  1. Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略
  2. latch.await java有什么作用_java相关:CountDownLatch源码解析之await()
  3. “ModSecurity2”源码分析
  4. 自从有了mybatis-plus代码生成器,写代码效率高了一大截
  5. 1.9 _07 不与最大数相同的数字之和 python
  6. kali 无法使用ifconfig等常用命令
  7. 安装Quagga路由软件
  8. 油猴脚本开发及发布流程
  9. 【IT之路】LoadRunner系列-Win7 64bit下搭建Loadrunner11破解版
  10. centos7安装中文字体
  11. Java Swing实现简易计算器
  12. 2018年中科院计算所推免考试回忆录
  13. C++ STL求全排列和组合
  14. stormzhang:对于 996,说下我的观点
  15. VB.NET的 结构和类
  16. 终于找到阻止360文件粉碎机的源代码了
  17. 如何网络成瘾 - 作者:貘貘(转自GameRes论坛)
  18. windows10使用ffmpeg截取视频图片
  19. GIF图片怎么压缩?如何快速缩小GIF图片?
  20. ABC Storage私有云全闪对象存储解决方案,AI时代数字经济的核动力

热门文章

  1. 【行为识别】基于matlab轨迹法行为识别【含Matlab源码 375期】
  2. java 包含字符串 个数_java查找字符串中的包含子字符串的个数实现代码
  3. win7系统怎么用计算机,win7电脑配置怎么查看_win7系统查看电脑配置的方法
  4. 在程序中表示什么_程序开发中:什么是前后端分离?你搞清楚了吗?
  5. java 命令行 库_java以太坊库web3j文档
  6. 利用PCA降维的手工计算实例
  7. 如何监控微信小程序HTTP请求错误
  8. Confluence 6 使用 Decorator 宏
  9. Aapache status / apache2ctl status 总是403
  10. Linux常用指令指南