2016-12-21 31 views
0

我是新來的python多處理。我遇到一個算法的程序。我已經接近一個星期了。我會很感激這個幫助。 我將展示算法。 全局變量X,k多進程之間。python多處理與共享變量和異步?

  1. 從全局存儲器讀變量X
  2. 循環:當k < 100(k被共享存儲器計數器)

    a). k=k+1, globaly 
        b). Read y from the global memory with locks 
        c). compute _g=G(k,y,x) 
        d). USING _g to update the y and X,globally, with locks 
    

    END

回答

0

不能共享變量或跨過程的任何其他內建類型。對於跨進程共享數據,multiprocessing模塊有兩種類型:

  1. Queue
  2. Pipe

檢查:Exchanging objects between processes文件。


Queue document說:

返回使用管和幾個鎖/信號量實現的過程共享隊列。當一個進程首先將一個項目放入隊列中時,啓動一個進給線程,該進程線程將對象從緩衝區傳送到管道中。

作爲每Pipe document

返回表示一個管的端部連接對象的一對(conn1連接,CONN2)。

如果duplex爲True(默認值),則管道是雙向的。如果duplex爲False,則管道是單向的:conn1只能用於接收消息,而conn2只能用於發送消息。

+0

爲什麼會有人低估這個? –

+2

可能是因爲我沒有提供適用於OP的實際代碼/示例。而且,那是因爲我不知道OP想要達到什麼目的。如果向下選民可以發表評論來解決這個問題,我會很感激,這將有助於我改進答案 –