| import threading | |
| class ThreadManager: | |
| """ | |
| Manages multiple threads used to execute given handler tasks. | |
| """ | |
| def __init__(self, handlers): | |
| self.handlers = handlers | |
| self.threads = [] | |
| def start(self): | |
| for handler in self.handlers: | |
| thread = threading.Thread(target=handler.run) | |
| self.threads.append(thread) | |
| thread.start() | |
| def stop(self): | |
| for handler in self.handlers: | |
| handler.stop_event.set() | |
| for thread in self.threads: | |
| thread.join() | |