我是python的初学者。我在程序中学习并应用了多线程,但只执行了一个线程
该程序是关于调用函数,该函数使用超声波传感器返回距离值,并使用时间戳保存来自网络摄像头的视频帧。我已经尝试过不使用线程的代码,它工作得很好,但是由于距离测量所花费的时间,帧数减少了,所以我想在python中使用多线程并行执行它们
import threading
import thread
video = cv2.VideoCapture(0)
class u1Thread(threading.Thread):
def run(self):
TRIG1=23 #Associate pin 23 to TRIG
ECHO1=24 #Associate pin 24 to ECHO
GPIO.setup(TRIG1,GPIO.OUT) #Set pin as GPIO out
GPIO.setup(ECHO1,GPIO.IN) #Set pin as GPIO in
U_1=[]
start=[]
while True:
d=ultrasonic(TRIG1,ECHO1)
U_1.append(d)
start.append(str(time.time()))
x=pd.DataFrame({'1st':U_1, 'Time Stamp':start})
export_csv = x.to_csv (r'/home/pi/q.csv', index = None,
header=True)
class vfThread(threading.Thread):
def run(self):
ret, frame=video.read()
if ret == True:
cv2.imwrite(str(time.time()) + '.jpg',frame)
U1=u1Thread()
VF=vfThread()
U1.run()
VF.run()
我希望两个线程都执行,但只执行第一个线程
用
U1.start()
和VF.start()
代替run
run
在不启动新线程的情况下执行代码,因此,程序卡在while
循环中start
启动一个线程并在其中执行run
。两个线程同时运行相关问题 更多 >
编程相关推荐