我是多处理的新手,但花了一整天的时间试图让以下内容正常工作。
我正在尝试使用OpenCV(func_run_forever(与单个requests.get(func_run_once(并行运行我的网络摄像头。 因此,预期结果是我的网络摄像头在窗口中运行(imshow(,并且当我的网络摄像头运行时来自requests.get的单个响应200。 但是,request.get 在我退出 OpenCV 窗口之前不会运行。
任何帮助,提示,线索...甚至答案将不胜感激!
from multiprocessing import Process
import cv2
import requests
def func_run_forever():
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
def func_run_once():
res = requests.get('https://www.google.com.au')
print(res)
if __name__ == '__main__':
p1 = Process(target=func_run_forever())
p2 = Process(target=func_run_once())
p1.start()
p2.start()
p1.join()
p2.join()
伙计,你的代码需要 1% 的修改才能按预期工作。更改此设置:
p1 = Process(target=func_run_forever())
p2 = Process(target=func_run_once())
对此:
p1 = Process(target=func_run_forever)
p2 = Process(target=func_run_once)