Python非阻塞获取键盘输入利用threading多线程

在一个项目中,我需要用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很小一部分功能,解锁更多功能看一看论坛里其他大佬的帖子。

你可能感兴趣的:(python)