下面是一个使用多线程编写的程序,可以实现在输入字符串"hello world"后停止,并在输入另一个字符串后重复,直到输入"quit"为止。
import threading
def input_thread():
while True:
user_input = input()
if user_input == "hello world":
# 通知主线程停止
main_thread.event.set()
break
elif user_input == "quit":
break
def main_thread_function():
# 等待输入线程通知
main_thread.event.wait()
while True:
user_input = input()
if user_input == "quit":
break
if __name__ == "__main__":
main_thread = threading.Thread(target=main_thread_function)
main_thread.event = threading.Event()
main_thread.start()
input_thread()
main_thread.join()
这个程序创建了两个线程:main_thread
和input_thread
。main_thread
是主线程,负责等待输入线程通知后,再循环接收用户输入。input_thread
是输入线程,负责循环接收用户输入,并在输入"hello world"时通知主线程停止。
主线程和输入线程之间通过threading.Event()
来进行通信。当输入线程接收到"hello world"时,调用main_thread.event.set()
来通知主线程停止。主线程在收到通知后,退出循环并结束程序。
请注意,这个程序是无限循环接收用户输入的,直到输入"quit"后才会退出程序。如果你想要在一次输入"hello world"后结束程序,可以根据需要修改代码。