我想运行一个程序,可以同时请求输入和运行线程。
例如:
import threading
def get_input():
while True:
var = input('prompt> ')
do_stuff
#main loop
while True:
input_thread = threading.Thread(target=get_input)
input_thread.start()
do_stuff_that_doesn't_work
所以上面的问题是它要求input(prompt>)
并且当它要求输入时,do_stuff_that_doesn't_work
将不起作用。
我以前见过的人都是这样,但我不知道怎么做。
答案 0 :(得分:1)
你不应该在while循环中创建一个线程。试试这段代码......
import threading
import time
run = True
def get_input():
global run
while run:
var = input('prompt> ') #python 3 only
print('Input was ', var)
if 'q' == var:
run = False
input_thread = threading.Thread(target=get_input)
input_thread.start()
print('Type q to exit')
ctr = 0
while run:
ctr += 1
time.sleep(0.1)
print('Exiting with ctr: ', ctr)