python多处理共享变量和异步?

时间:2016-12-21 08:59:37

标签: python python-multiprocessing

我是python中多处理的新手。我遇到了一个算法程序。我已经坚持了将近一个星期。我将非常感谢你的帮助。 我将展示算法。 多个进程中的全局变量 X k

  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

1 个答案:

答案 0 :(得分:1)

您不能跨进程共享变量或任何其他内置类型。为了跨进程共享数据,multiprocessing模块有两种类型:

  1. Queue
  2. Pipe
  3. 检查:Exchanging objects between processes文件。

    Queue document说:

      

    返回使用管道和一些锁/信号量实现的进程共享队列。当进程首先将项目放入队列时,将启动一个进给器线程,该线程将对象从缓冲区传输到管道中。

    根据Pipe document

      

    返回表示管道末端的Connection对象的对(conn1,conn2)。

         

    如果duplex为True(默认值),则管道是双向的。如果duplex为False,则管道是单向的:conn1只能用于接收消息,conn2只能用于发送消息。