2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python多进程共享变量 附共享图像内存实例

python多进程共享变量 附共享图像内存实例

时间:2019-07-29 05:32:33

相关推荐

python多进程共享变量 附共享图像内存实例

由于python多线程只能在单核上跑,因此需要cpu多核处理只能用多进程。

python多进程一般用multiprocessing。可是用multiprocessing的array或者value对内存的读写速度特别慢。原因以及解决方法如下链接:

/questions/37705974/why-are-multiprocessing-sharedctypes-assignments-so-slow

针对numpy的图像多进程共享的示例代码如下:

1 import numpy as np 2 import cv2, multiprocessing, sharedmem 3 4 def show_image(image_in): 5while 1: 6 cv2.imshow("avi",image_in) 7 cv2.waitKey(1) 8 9 def aa(images):10while 1:11 for i in range(20):12 cv2.imshow("a",images[i])13 cv2.waitKey(1)14 15 if __name__ == '__main__':16cap = cv2.VideoCapture('1.avi')17assert cap.isOpened(), 'Cannot capture source'18 19_, image = cap.read()20shape = np.shape(image)21dtype = image.dtype22images = multiprocessing.Manager().dict()23image_in = sharedmem.empty(shape, dtype)24image_in[:] = image.copy()25 26a = multiprocessing.Process(target=show_image,args=(image_in,))27a.start()28count = 029for i in range(20):30 ret, image = cap.read()31 if not ret:32 break33 image_in[:] = image.copy()34 images[count] = image_in35 count += 136multiprocessing.Process(target=aa, args=(images,)).start()37aa.join()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。