Python多线程 - 键盘中断在哪里

时间:2015-03-07 04:59:34

标签: python multithreading

我遇到了一些看似简单的代码,它基本上启动了一个线程来读取一个串行设备,然后在主线程中将一些数据写入设备。预期的关机机制是一个键盘中断,但似乎没有抓住我的期望。

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()

1 个答案:

答案 0 :(得分:0)

键盘中断或任何其他外部信号始终仅进入主线程 - 到子线程。如果您希望在主线程终止时停止所有操作,请创建子线程守护程序,这样它们就不会让整个过程保持活着!