输入停止线程运行

时间:2018-01-23 23:54:07

标签: python multithreading input python-multithreading

我想运行一个程序,可以同时请求输入运行线程。

例如:

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将不起作用。 我以前见过的人都是这样,但我不知道怎么做。

1 个答案:

答案 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)