在一个项目中,我需要用Python达到类似单片机里面的中断模式或者说异常模式的效果,就是我在while 1 里面有好大一串程序要跑,里面有好几个延时,加起来要起码10秒钟才能从头跑到尾所以不知道获取键盘输入应该放在哪里。开始的时候试过监听键盘异常但是有bug,里面头绪有点难理清,后来查资料发现有多线程的写法,这东西确实在单片机上没用到过。因为单片机都是多线程,不上操作系统(RTOS)就只能用中断来达到多线程功能。但既然在电脑上有(threading)这库,我就直接拿来用了。
import threading
i = 0
def check_input():
global i
while True:
input_char = input()
if input_char == '+':
i += 1
elif input_char == '-':
i += 1
elif input_char == "-":
i = 9999
def main():
global i
j = i
while i != 9999:
if j != i:
j = i
print(i)
# time.sleep(1)
def test():
while 1:
pass
if __name__ == '__main__':
input_thread = threading.Thread(target=check_input) # 开了一个target=check_input的线程
input_thread.daemon = True
input_thread.start()
main()
# test()
这里我只用到threading很小一部分功能,解锁更多功能看一看论坛里其他大佬的帖子。