线程从外部用户输入停止?

时间:2017-10-23 22:01:37

标签: python multithreading python-3.x cmd

所以我有以下问题:

我有一个通过命令行参数运行的小应用程序。它的作用是获取参数并启动一个运行在其中的服务器的线程。

我知道我可以制作一个像这样的可停止的线程:

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命令上我希望所需的服务器停止线程执行,但我不知道如何实现这一点。

0 个答案:

没有答案