簡體   English   中英

python中的多處理,我可以使用全局變量嗎?

[英]multiprocessing in python, can i use variables for global?

你好,請幫忙。

我想在使用重復語句時使用變量。 實際上在我的代碼中,有很多變量和函數來處理變量。

所以出於某種原因我必須使用多進程,但這對我想要的不起作用。

下面是簡單的代碼,

請幫我。

from multiprocessing import Process, Manager
import time

def a(final_list):
   c=0
   while True:
       c += 1
       final_list.append(c)
       time.sleep(1)
       print(final_list)

def b(final_list):
  while True:
      print(final_list[-1])
      time.sleep(1)


if __name__ == '__main__':
  manager = Manager()
  final_list = []
  final_list = manager.list()

  #print(a)
  p1 = Process(target=a, args=(final_list,))
  p2 = Process(target=b, args=(final_list,))
  p1.start()
  time.sleep(3)
  p2.start()

我認為您忘記對流程使用join() 嘗試這個:

from multiprocessing import Process, Manager
import time

def a(final_list):
   c=0
   while True:
       c += 1
       final_list.append(c)
       time.sleep(1)
       print(final_list)

def b(final_list):
  while True:
      print(final_list[-1])
      time.sleep(1)


if __name__ == '__main__':
    with Manager() as manager:
        final_list = manager.list()
        p1 = Process(target=a, args=(final_list,))
        p2 = Process(target=b, args=(final_list,))
        p1.start()
        time.sleep(3)
        p2.start()
        p1.join()
        p2.join()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM