iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python多进程共享变量
  • 750
分享到

python多进程共享变量

变量进程python 2022-06-04 19:06:35 750人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了python多进程共享变量的相关代码,供大家参考,具体内容如下 from multiprocessing import Process, Manager import os impo

本文实例为大家分享了python多进程共享变量的相关代码,供大家参考,具体内容如下


from multiprocessing import Process, Manager
import os
import time
 
 
class MulFun():
 
  def __init__(self):
    self.a = [1,2,3,4,5]
    self.b = 0
    self.c = {}
    self.s = "hello world"
    self.radius = Manager().dict()
    self.radius['a'] = self.a
    self.radius['b'] = self.b
    self.radius['c'] = self.c
    self.radius['s'] = self.s
 
 
  def func1(self):
    self.b = self.radius['b']
    for i in range(10):
      self.b += i
      self.radius['b'] = self.b
      time.sleep(0.5)
      print '1: ', self.radius['b'],':', self.radius['c'], os.getpid()
 
 
  def func2(self):
    self.c = self.radius['c']
    for i in ['ab', 'bc', 'cd', 'df', 'fg']:
      self.c[i] = i + i
      self.radius['c'] = self.c
      time.sleep(0.5)
      print '2:  ', self.radius['b'],':', self.radius['c'], os.getpid()
 
  def run(self):
    process1 = Process(target=self.func1, args=())
    process2 = Process(target=self.func2, args=())
    process1.daemon = True
    process2.daemon = True
    process1.start()
    process2.start()
    process1.join()
    process2.join()
 
 
class MulSun1:
 
  def __init__(self, radius):
    self.radius = radius
    self.a = radius['a']
    self.s = radius['s']
 
  def process(self):
 
    for i, j in enumerate(self.a):
      #self.a[i] = j * 2
      #self.radius['a'] = self.a
      time.sleep(0.5)
      print '1: ', self.radius['a'], ' & ', self.radius['s']
 
 
class MulSun2:
 
  def __init__(self, radius):
    self.radius = radius
    self.a = radius['a']
    self.s = radius['s']
 
  def process(self):
 
    for i in range(10):
      self.s = self.s + ':% s' %i
      if i < len(self.a):
        self.a[i] += i
      else:
        self.a.append(i + i)
      self.radius['s'] = self.s
      self.radius['a'] = self.a
      time.sleep(0.5)
      print '2: ', self.radius['a'], ' & ', self.radius['s']
 
if __name__ == '__main__':
  aa = MulFun()
  s1 = MulSun1(aa.radius)
  s2 = MulSun2(aa.radius)
  process1 = Process(target=s1.process, args=())
  process2 = Process(target=s2.process, args=())
  process1.daemon = True
  process2.daemon = True
  process1.start()
  process2.start()
  process1.join()
  process2.join()
  print "------------------------"
  print 'process id:', os.getpid()
  print 'done'
  print aa.radius['a'], ' & ', aa.radius['s']

以上就是本文的全部内容,希望对大家学习Python程序设计有所帮助。

--结束END--

本文标题: python多进程共享变量

本文链接: https://www.lsjlt.com/news/15078.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python多进程共享变量
    本文实例为大家分享了python多进程共享变量的相关代码,供大家参考,具体内容如下 from multiprocessing import Process, Manager import os impo...
    99+
    2022-06-04
    变量 进程 python
  • 40. Python 多线程共享变量
    1.线程共享变量多线程和多进程不同之处在于,多线程本身就是可以和父线程共享内存的,这也是为什么其中一个线程挂掉以后,为什么其他线程也会死掉的道理。import threading def worker(l):     l.append("...
    99+
    2023-01-31
    变量 多线程 Python
  • python多线程共享变量怎么实现
    在Python中,可以使用`threading`模块来实现多线程共享变量。 下面是一个简单的例子,展示了如何使用多线程共享变量: i...
    99+
    2023-10-27
    python
  • golang多线程共享变量怎么实现
    在Go语言中,可以使用`sync`包中的`Mutex`或`RWMutex`来实现多线程之间共享变量的访问控制。 `Mutex`是一种...
    99+
    2023-10-25
    golang
  • Python 多进程 多线程数据共享
    #!/usr/bin/env python # -*- coding:utf-8 -*- # author: Changhua Gong from multiprocessing import Process, Queue import o...
    99+
    2023-01-31
    多线程 进程 数据
  • java多个线程怎么共享一个变量
    Java中多个线程可以通过共享变量来实现线程之间的通信和共享数据。以下是几种常见的实现方式: 使用共享变量作为实例变量:将共享变量...
    99+
    2023-10-27
    java
  • java多线程共享全局变量怎么实现
    在Java中,多线程共享全局变量可以通过以下几种方式实现: 使用volatile关键字:将共享变量声明为volatile类型,确...
    99+
    2023-10-23
    java
  • java多线程共享变量的方法是什么
    Java多线程共享变量的方法有以下几种:1. 使用共享对象:多个线程共享一个对象,并且该对象的属性被多个线程访问和修改。通过使用sy...
    99+
    2023-08-26
    java
  • Python线程怎么解决共享变量问题
    这篇文章主要介绍“Python线程怎么解决共享变量问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python线程怎么解决共享变量问题”文章能帮助大家解决问题。下面展示另一种转账的方式:impor...
    99+
    2023-06-29
  • Python线程之如何解决共享变量问题
    前面提到了银行转账这个场景,展示了一个比较耗时的转账操作。 这篇继续转帐,下面展示一段程序,多个线程的操作都更改了amount变量导致运行结果不对的问题。 前文说了转账问题 下面展示...
    99+
    2022-11-13
  • C语言多线程局部变量共享怎么实现
    C语言中多线程的局部变量是不能直接共享的,每个线程都有自己的栈空间,局部变量存储在栈空间中,每个线程的栈空间都是独立的,因此局部变量...
    99+
    2023-10-25
    C语言
  • VB.NET共享变量怎么用
    这篇文章主要介绍VB.NET共享变量怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我们还可以创建另外一种共享成员。有时候类的所有实例需要共享一个数值,有时候每个特定类型的对象要共享相同的变量,这些时候都可以通过...
    99+
    2023-06-17
  • Python多进程共享numpy 数组的方法
    为什么要用numpy     Python中提供了list容器,可以当作数组使用。但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,...
    99+
    2022-11-12
  • java多个类共享变量的方法是什么
    在Java中,可以实现多个类共享变量的方法有以下几种: 静态变量:使用static关键字声明的变量是类级别的变量,可以被该类的所有...
    99+
    2023-10-25
    java
  • java如何定义共享变量
    在Java中,可以使用以下几种方式来定义共享变量:1. 使用静态变量:使用`static`关键字定义一个静态变量,该变量将被所有实例...
    99+
    2023-10-07
    java
  • C语言多线程局部变量共享的方法是什么
    在C语言中,多线程之间共享局部变量是一种危险的行为,容易导致数据竞争和不确定的结果。因此,一般不推荐直接共享局部变量。 然而,如果确...
    99+
    2023-10-27
    C语言
  • Python实现多进程共享数据的方法分析
    本文实例讲述了Python实现多进程共享数据的方法。分享给大家供大家参考,具体如下: 示例一: # -*- coding:utf-8 -*- from multiprocessing import Pr...
    99+
    2022-06-04
    进程 方法 数据
  • Golang共享变量如何解决问题
    目录1. 什么是竞态 2. 如何消除竞态 3. Go 提供的并发工具 3.1 互斥锁 3.2 读写互斥锁 3.3 Once 3.4 竞态检测器 4. 小结 在之前的文章中,我们详细说...
    99+
    2022-11-12
  • VB.NET中怎么创建共享成员变量
    这期内容当中小编将会给大家带来有关VB.NET中怎么创建共享成员变量,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在某些时候,可能需要在各个对象之间共享某个成员变量(当一个对象向变量赋值时,每个对象都可以...
    99+
    2023-06-17
  • java多线程怎么对公共变量赋值
    在Java多线程中,可以使用synchronized关键字来实现对公共变量的赋值。 首先,需要定义一个共享的变量,多个线程都可以修改...
    99+
    2023-10-25
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作