python多進程共用變數

來源:互聯網
上載者:User
本文執行個體為大家分享了python多進程共用變數的相關代碼,供大家參考,具體內容如下

from multiprocessing import Process, Managerimport osimport 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程式設計有所協助。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.