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

2024-05-26 09:20:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一些看似简单的代码的问题,这些代码基本上是启动一个线程来读取串行设备,然后在主线程中向设备写入一些数据。预期的关机机制是键盘中断,但这似乎并不是我所期望的。你知道吗

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

Tags: 数据代码devloopsendreaddefexception
1条回答
网友
1楼 · 发布于 2024-05-26 09:20:01

键盘中断或任何其他外部信号总是只传送到主线程,而不是传送到子线程。如果您希望在主线程终止时停止所有操作,请创建子线程守护进程,这样它们就不会使整个进程保持活动状态!你知道吗

相关问题 更多 >