Код первый:
'''this is main structure of my program'''
from twisted.web import http
from twisted.protocols import basic
import threading
threadstop = False #thread trigger,to be done
class MyThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.start()
def run(self):
while True:
if threadstop:
return
dosomething()
'''def some function'''
if __name__ == '__main__':
from twisted.internet import reactor
t = MyThread()
reactor.listenTCP(serverport,myHttpFactory())
reactor.run()
Как моя первая многопоточная программа, я счастлив, что она работает как положено. Но теперь я обнаружил, что не могу это контролировать. Если я запускаю его спереди, Control + C может остановить только основной процесс, и я все еще могу найти его в списке процессов; если я запускаю его в фоновом режиме, я должен использовать kill -9 pid
, чтобы остановить его. И мне интересно, есть ли способ управления процессом подпотока с помощью триггерной переменной или лучший способ остановить весь процесс, кроме kill -9
.