我遇到了一些看似简单的代码,它基本上启动了一个线程来读取一个串行设备,然后在主线程中将一些数据写入设备。预期的关机机制是一个键盘中断,但似乎没有抓住我的期望。
readData = True
dev = serial.Serial('/dev/ttyX', 115200)
readThread = threading.Thread(target=read_loop, args=())
readThread.start()
send_loop()
def read_loop():
while readData:
try:
print dev.read(2)
except Exception, e:
print 'Continue'
dev.close()
def send_loop():
global readData
for i in xrange(5):
try:
dev.write('a')
time.sleep(1)
except Exception,e:
break
readData = False
readThread.join()
答案 0 :(得分:0)
键盘中断或任何其他外部信号始终仅进入主线程 - 不到子线程。如果您希望在主线程终止时停止所有操作,请创建子线程守护程序,这样它们就不会让整个过程保持活着!