线程编程和使用锁的新手所以我有 2 个线程 - 一个从 COM 端口读取 vlaues - 另一个控制步进电机
在一个线程中
if stepperb_value != 0: #if stepperb non-zero if stepperb_value > 0: # if positive value self.step_fine(10,11,12,13,step_delay) #step forward else: self.step_fine(13,12,11,10,step_delay) #step backwards if abs(stepperb_value) != 100: time.sleep(10*step_delay*((100/abs(stepperb_value))-1))
(我需要防止对 stepperb 的更改导致最后一行被零除错误)
在另一个从 COM 端口读取值的线程中
if 'stepperb' in dataraw: outputall_pos = dataraw.find('stepperb') sensor_value = dataraw[(1+outputall_pos+len('stepperb')):].split() print "stepperb" , sensor_value[0] if isNumeric(sensor_value[0]): stepperb_value = int(max(-100,min(100,int(sensor_value[0]))))
我需要在哪里(以及什么样的锁) - 第一个线程是时间敏感的,因此需要优先级
问候
西蒙