如何中断线程

时间:2018-02-04 21:49:08

标签: multithreading python-3.x

我想要杀死一个线程“中途运行”我有2个循环一次一些事情(以免称之为1)而另一个(让我们称之为2)听一个键盘事件我希望1尽快终止2检测到事件

我很抱歉我的代码很乱它可能会被忽略而且我没有太多能够做到

import threading
import keyboard
import time

r = sr.Recognizer()


class Main(threading.Thread):
    def __init__(self):
        super(Main, self).__init__()
        self._stop_event = threading.Event()

    def stop(self):
        self._stop_event.set()

    def stopped(self):
        return self._stop_event.is_set()

    def run(self):
        main()

class Listener(threading.Thread):
    def run(self):
        listener()

def listener():
    time.sleep(0.3)
    keyboard.wait('alt + s')
    print('stop')
    _main.stop()
    time.sleep(0.3)
    keyboard.wait('alt + s')
    print('start')
    _main.start()

def main():
    _listener.start()
    while 1:
        print('m')
        time.sleep(1)


if __name__ == '__main__':
    _main = Main()
    _listener = Listener()
    keyboard.wait('alt + s')
    _main.start()
    keyboard.wait('esc')

0 个答案:

没有答案