所以我有以下问题:
我有一个通过命令行参数运行的小应用程序。它的作用是获取参数并启动一个运行在其中的服务器的线程。
我知道我可以制作一个像这样的可停止的线程:
import threading
class StoppableThread(threading.Thread):
"""Thread class with a stop() method. The thread itself has to check
regularly for the stopped() condition."""
def __init__(self):
super(StoppableThread, self).__init__()
self._stop_event = threading.Event()
def stop(self):
self._stop_event.set()
def stopped(self):
return self._stop_event.is_set()
但我的问题是我的应用程序仍然会运行,我可以与之交互的唯一方法是通过其他方式发送信号。
这也解决了我在应用程序仍在运行时按需启动多个服务器的困境
if __name__ == "__main__":
args = argparse.ArgumentParser(description='Process some arguments.')
args.add_argument('-start', help='Start the server', action='store_true')
args.add_argument('-stop', help='Stop the server', action='store_true')
args.add_argument('-path', help='Insert server exe path', required=True)
现在在-stop
命令上我希望所需的服务器停止线程执行,但我不知道如何实现这一点。