Найти - Пользователи
Полная версия: Завершение потока
Начало » Python для новичков » Завершение потока
1 2
pyuser
Soteric
Насколько я понял документацию, демон треды должны завершаться автоматически.
Вы, безусловно, поняли правильно, наверно мне следовало хотя бы взять в кавычки последнее упоминание о демоне. Я имел ввиду, что нет гарантии освобождения занятых ресурсов, т.е. для конкретной задачи, поставленной ТС, данный вариант не приемлем, ИМХО.
pyuser
gevg
возможно и правильнее, но лично мне неособо понятнее
Это же Ваш код, я только имена полей изменил :)
# имена хостов, номера портов и прочее лучше хранить в каком-нибудь конфиге,
# а не в тексте скрипта. Объект clients - это некое подобие конфига
clients = (("host.example", "6666", "1"), ("host2.example", "7777", "2"))
# событие, указывающее на необходимость завершения работы потоков
finished = threading.Event()
# создаем рабочие потоки
# threads = [Client(*(x + (finished,))) for x in clients]
# запишем вышеприведенный код более многословно
threads = []
for host, port, numb in clients:
    threads.append(Client(host, port, numb, finished))
# даем потокам поработать 30 секунд
time.sleep(30)
# сигналим о том, что хотим завершить работу
finished.set()
# дожидаемся корректного завершения всех потоков
for thread in threads:
    thread.join()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB