multiprocessing.Array Segmentation fault

时间:2016-09-26 12:26:55

标签: python memory ctypes python-multiprocessing

from multiprocessing import Value
from multiprocessing.sharedctypes import RawArray
from ctypes import addressof, c_char

array = RawArray(c_char, b'shirt')
array_length = array._length_
result_address = Value('i', 0)
result_address.value = addressof(array)
print((array._type_*array_length).from_address(result_address.value).value)

在一个过程中,我将类型result_address的{​​{1}}传递给子进程,子进程然后在共享内存中创建一个数组,并将其地址写回multiprocessing.Value。基本上我想与父进程共享在子进程中创建的字节串而不使用result_address,因为它只是一个字节串,它可以(?)在共享内存中管理。

multiprocessing.Manager也可能再次在内存中创建数组,如何在不创建另一个数组的情况下读取python字符串中的c数组?

代码甚至不能在单个进程中生成并生成(array._type_*array_length).from_address()

0 个答案:

没有答案