在python中的多个进程之间共享类变量

bawejakunal

我有一个声明为列表的类变量,我想从该类中声明的方法进行更新。但是,由于此方法处理大量数据,因此我使用多重处理来调用它,因此在更新它之前需要锁定类变量。我无法弄清楚如何放置这样的锁并更新类变量。如果很重要,我在任何给定时间都只创建一个上述类的对象。

联合市场

由于python的GIL,只能在完全独立的任务且没有共享内存的情况下使用多处理。但是您仍然可以通过使用多处理共享数组/值来实现它:

来自https://docs.python.org/2/library/multiprocessing.html#sharing-state-between-processes

from multiprocessing import Process, Value, Array

def f(n, a):
    n.value = 3.1415927
    for i in range(len(a)):
        a[i] = -a[i]

if __name__ == '__main__':
    num = Value('d', 0.0)
    arr = Array('i', range(10))

    p = Process(target=f, args=(num, arr))
    p.start()
    p.join()

    print num.value
    print arr[:]

现在,按照您的要求,您需要确保differents进程不会同时访问同一变量,并使用Lock希望所有multiprocessing模块中可用的共享变量都与一个锁配对。

要访问锁:

num.acquire() # get the lock
# do stuff
num.release() # don't forget to release it

我希望这有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Python 中的多个进程之间共享存储对象的字典

来自分类Dev

在进程之间共享变量-PHP

来自分类Dev

在Python中的进程之间共享许多队列

来自分类Dev

Python在进程之间共享锁

来自分类Dev

关于在Python中的某些线程之间共享变量

来自分类Dev

python multiprocessing-在进程之间共享类的字典,并将后续从进程反映到共享内存的写入

来自分类Dev

在Tensorflow中的线程之间共享变量

来自分类Dev

在JAVA中的线程之间共享变量

来自分类Dev

如何在进程之间共享日期变量-多处理Python

来自分类Dev

mod_perl在子进程之间共享变量

来自分类Dev

如何在多个进程之间共享stdout?

来自分类Dev

多个分叉进程之间的共享列表(C)

来自分类Dev

在 Python 中,线程之间共享类实例数据和方法,但只有一个特定变量

来自分类Dev

进程之间共享内存

来自分类Dev

多个进程之间的多进程同步(Python)

来自分类Dev

在Python进程之间共享内存中的大型数据结构?

来自分类Dev

在python中的两个子进程之间共享匿名mmap

来自分类Dev

我如何在 Python 中的 2 个不同进程之间共享串行端口

来自分类Dev

python服务器中进程之间的共享列表

来自分类Dev

如何在python的进程之间共享数据?

来自分类Dev

在协程之间共享变量

来自分类Dev

在课程之间共享变量

来自分类Dev

在父子进程之间共享指针

来自分类Dev

在Linux上的进程之间共享内存

来自分类Dev

ServiceStack在进程之间共享会话

来自分类Dev

在进程之间共享内核对象

来自分类Dev

在节点子进程之间共享数据

来自分类Dev

线程和进程之间共享内存

来自分类Dev

在工作进程之间共享对象

Related 相关文章

热门标签

归档