gpt4 book ai didi

用于多处理的 Python 共享字符串内存

转载 作者:太空狗 更新时间:2023-10-30 02:31:04 24 4
gpt4 key购买 nike

我试图在我的 Python 进程之间使用共享字符串变量,但似乎我做错了什么,因为我得到了核心转储和无效的内存值。

我使用 multiprocessing.Value 创建一个 ctypes.c_char_p 值并使用 value 属性访问它。根据我对 Python 文档的理解,值属性应该是同步的,只要它是 Value 的实例(与 RawValue 的实例相反)。目前为止正确吗?

我创建了一个简短示例来演示我对 Value 的使用并显示执行时的不一致:

from multiprocessing import Process, Value
from ctypes import c_char_p

def process(v):
while True:
val = v.value
print val
while val == v.value:
pass

v = Value(c_char_p, None)
p = Process(target=process, args=(v,))
p.start()

for i in range(1,999):
v.value = str(i)

p.terminate()

最佳答案

我认为问题可能是使用 Value(c_char_p) 来保存字符串值引起的。如果你想要一个字符串,你应该只使用 multiprocessing.Array(c_char)

关于用于多处理的 Python 共享字符串内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23816222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com