python多進程共享變量
更新時間:2016年04月06日 15:25:35 作者:geosson
這篇文章主要為大家詳細介紹了python多進程共享變量的相關(guān)資料,感興趣的小伙伴們可以參考一下
本文實例為大家分享了python多進程共享變量的相關(guān)代碼,供大家參考,具體內(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)容,希望對大家學(xué)習(xí)python程序設(shè)計有所幫助。
您可能感興趣的文章:
- 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簡單示例
相關(guān)文章
基于Python實現(xiàn)一個簡單的學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細介紹了如何利用python實現(xiàn)簡單的學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-12-12
python中sklearn庫predict及python sklearn linearmodel(
Scikit-learn(sklearn)是機器學(xué)習(xí)中常用的第三方模塊,對常用的機器學(xué)習(xí)方法進行了封裝,包括回歸(Regression)、降維(Dimensionality Reduction)、分類(Classfication)、聚類(Clustering)等方法,今天小編給大家分享python中sklearn庫predict的問題,感興趣的朋友一起看看吧2024-02-02
python dict remove數(shù)組刪除(del,pop)
我們在用數(shù)組列表做刪除的時候,可能選擇2個方法,一個是del,一個是pop方法2013-03-03

