Форум сайта python.su
SotericВы, безусловно, поняли правильно, наверно мне следовало хотя бы взять в кавычки последнее упоминание о демоне. Я имел ввиду, что нет гарантии освобождения занятых ресурсов, т.е. для конкретной задачи, поставленной ТС, данный вариант не приемлем, ИМХО.
Насколько я понял документацию, демон треды должны завершаться автоматически.
Офлайн
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()
Отредактировано pyuser (Фев. 5, 2014 01:47:17)
Офлайн