输入停止线程运行

问题描述 投票:2回答:1

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

例如:

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

python multithreading input python-multithreading
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.