在python多线程中,只有主线程能接收到信号,而且不能使用join阻塞,那么主线程接收到信号后怎么结束正在阻塞状态中的子线程呢如下代码子线程receive_task1正阻塞在os.read()(接收串口数据,串口没有收到数据)函数中,有没有什么办法让os.read()函数退出呢?如果在主线程中使用os.read(),默认情况可以使用Ctrl+C打断,现在这种情况如何做最佳?importosimportsignalimportthreadingimporttimedeftest(signum,frame):print("\nreceivedsig%d"%(signum))print("howtomakeos.read(...)inrcv_task1threadstop?")print("exceptusesys.exit(1)")defreceive_task1():fd=os.open("/dev/ttyUSB1",os.O_RDWR)os.read(fd,10)print("receivethreadend")signal.signal(signal.SIGINT,test)rcv_task1=threading.Thread(target=receive_task1)rcv_task1.setDaemon(True)rcv_task1.start()while(1):time.sleep(1)
添加回答
举报
0/150
提交
取消