Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以使用numpy的get_lock()锁定ctypes数组的列或行?_Python_Numpy_Multiprocessing_Ctypes - Fatal编程技术网

Python 是否可以使用numpy的get_lock()锁定ctypes数组的列或行?

Python 是否可以使用numpy的get_lock()锁定ctypes数组的列或行?,python,numpy,multiprocessing,ctypes,Python,Numpy,Multiprocessing,Ctypes,是否可以使用get_lock()锁定ctypes数组的列或行 比如: lock = mp.Lock() cArray = mp.Array(ctypes.c_int, 100*4, lock = lock) numpyArray = np.frombuffer(cArray.get_obj()) numpyArray.shape = (100,4) #In a function later called via multiprocessing.Process - for example num

是否可以使用get_lock()锁定ctypes数组的列或行

比如:

lock = mp.Lock()
cArray = mp.Array(ctypes.c_int, 100*4, lock = lock)
numpyArray = np.frombuffer(cArray.get_obj())
numpyArray.shape = (100,4)

#In a function later called via multiprocessing.Process - for example
numpyArray[:,0].get_lock() #Also could be numpyArray.T[0].get_lock()

我知道可以锁定整个ctypes数组,但这只是其中的一部分。我知道数组的大小,它将保持不变,因此我可以计算ctypes数组中的偏移量,但我想知道-人们能否利用numpy的切片与多处理锁的易用性?

如果您有
锁,您可以锁定任何代码块:

with lock:
    numpyArray[:,0] = 1
    a += 2
Numpy数组没有关联的多处理锁。得到它;您可以调用
cArray.get_lock()
或只是作为变量传递
lock

相关:(查看我答案中的
f()
函数)