Skip to main content
 首页 » 编程设计

python之在 Python 中监控并发性(跨进程共享对象)

2025年05月04日9虾米姐

我是新来的,我是意大利人(如果我的英语不太好,请原谅我)。 我是一名计算机科学专业的学生,​​我正在使用 Python 进行并发程序项目。 我们应该使用监视器,一个带有方法和数据(例如条件变量)的类。此类监视器的一个实例(对象)应该在我们拥有的所有进程之间共享(由 os.fork o 由 multiprocessing 模块创建),但我们不知道该怎么做。线程更简单,因为它们已经共享内存,但我们必须使用进程。有没有办法让这个对象(监视器)在所有进程中共享? 希望我不是在胡说八道……非常感谢大家对巡演的关注。 等待答案。 洛伦佐

请您参考如下方法:

就“共享”实例而言,我相信讲师希望您将监视器的接口(interface)连接到它的本地进程,这样就好像它是共享的(一个 CORBA)。

查看关于multiprocessing 的 Queue 的绝妙文档:

from multiprocessing import Process, Queue 
 
def f(q): 
    q.put([42, None, 'hello']) 
 
if __name__ == '__main__': 
    q = Queue() 
    p = Process(target=f, args=(q,)) 
    p.start() 
    print q.get()    # prints "[42, None, 'hello']" 
    p.join() 

您应该能够想象在进行更改时如何在对等进程之间传播您的监视器的属性。