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很小一部分功能,解锁更多功能看一看论坛里其他大佬的帖子。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值