У меня есть код, который устанавливает обработчик прерывания в основном потоке и запускает al oop в побочном потоке. Это значит, что я могу Ctrl- C основной поток сигнализировать l oop о корректном завершении работы, и все это происходит внутри одного класса, который выглядит так:
class MyClass:
# non-relevant stuff omitted for brevity
def run(self):
with concurrent.futures.ThreadPoolExecutor() as executor:
future = executor.submit(self.my_loop, self.arg_1, self.arg_2)
try:
future.result()
except KeyboardInterrupt as e:
self.exit_event.set() # read in my_loop(), exits after finishing an iteration
future.result()
Это отлично работает. Мой вопрос: существуют ли особые типы объектов или характеристики объектов, о которых я должен знать при таком подходе, особенно в отношении себя. участники MyClass? Я думаю, что это нормально, потому что my_l oop создается внутри MyClass, и поэтому никаких копий себя. свойства сделаны - первоначальное тестирование показывает, что это так. Мне действительно интересно, есть ли еще объекты exoti c (например, не маринованные, что отлично работает в этом случае), которые я должен рассмотреть?