Вы можете определить функцию для создания простого числа и другую функцию для прослушивания сигналов KeyboardInterrupt
, как прокомментировал Ральф.В своей основной функции в конце выполните
if not Keyboard_thread.is_alive():
break
. Это позволит вашему коду проверить, что он не был остановлен только в конце цикла, что позволит избежать завершения вашей программы в середине.расчет.Документация по потокам на https://docs.python.org/2/library/threading.html для большей глубины!хотя вы хотите сделать что-то вроде
t = threading.Thread(target=your_function, args=[your_list_of_parameters](arguments are optional))
t.start()
Извините, если вы уже знаете темы, но это не было частью вашего сообщения, поэтому я предполагаю, что вы не знаете.
Вы можете позвонитьt.join()
для завершения потока, ожидающего прерывания клавиатуры (с указанием тайм-аута), или прекращения функции.После этого будет помечен ваш другой поток (тот, который проверяет keyboard_thread.is_alive()
, что он также должен выйти из своего цикла. Примечание: потоки работают только до конца функции, которую вы им назначаете, например, если ваша функция:
def new_function():
print("hey")
Если вы назначите поток для этой функции, поток напечатает «эй» один раз, а затем завершит себя после достижения конца функции. Не стесняйтесь оставлять комментарий, если что-то, что я сказал, неясно!