python多進程共享變量
更新時間:2016年04月06日 15:25:35 作者:geosson
這篇文章主要為大家詳細介紹了python多進程共享變量的相關資料,感興趣的小伙伴們可以參考一下
本文實例為大家分享了python多進程共享變量的相關代碼,供大家參考,具體內(nèi)容如下
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']
以上就是本文的全部內(nèi)容,希望對大家學習python程序設計有所幫助。
您可能感興趣的文章:
- Python進程間通信 multiProcessing Queue隊列實現(xiàn)詳解
- Python進程間通信Queue消息隊列用法分析
- python基于mysql實現(xiàn)的簡單隊列以及跨進程鎖實例詳解
- 基于python的多進程共享變量正確打開方式
- 淺談Python 多進程默認不能共享全局變量的問題
- Python 進程之間共享數(shù)據(jù)(全局變量)的方法
- 處理python中多線程與多進程中的數(shù)據(jù)共享問題
- python實現(xiàn)進程間通信簡單實例
- python多進程實現(xiàn)進程間通信實例
- python執(zhí)行子進程實現(xiàn)進程間通信的方法
- Python進程間通信用法實例
- Python 進程操作之進程間通過隊列共享數(shù)據(jù),隊列Queue簡單示例
相關文章
Python獲取二維數(shù)組的行列數(shù)的2種方法
這篇文章主要介紹了Python獲取二維數(shù)組的行列數(shù)的2種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-02-02Python3標準庫之dbm UNIX鍵-值數(shù)據(jù)庫問題
dbm是面向DBM數(shù)據(jù)庫的一個前端,DBM數(shù)據(jù)庫使用簡單的字符串值作為鍵來訪問包含字符串的記錄。這篇文章主要介紹了Python3標準庫:dbm UNIX鍵-值數(shù)據(jù)庫的相關知識,需要的朋友可以參考下2020-03-03Django模型層實現(xiàn)多表關系創(chuàng)建和多表操作
使用django ORM可以創(chuàng)建多表關系,并且也支持多張表之間的操作,以創(chuàng)建表關系和查詢兩部分說明django ORM的多表操作,本文就詳細的介紹一下,感興趣的可以了解一下2021-07-07