Форум сайта python.su
0
Здравствуйте
Помогите пожалуйста разобраться с потоками.
Я всегда запускал потоки с помощью ThreadPoolExecutor(max_workers=N)
но сейчас встретил такой подход:
for i in range(cfg_threads_count):
worker = tWorker(app)
worker.setDaemon(True)
worker.start()
Офлайн
0
ИгнатЭто как бы довольно разные вещи, но да, это хуже. Если я правильно помню, ThreadPoolExecutor появился только в третьем питоне и служит для упрощения организации пула потоков средствами операционки, которая в свою очередь ориентируется на число ядер процессора и все такое прочее.
- лучше это или хуже, чем ThreadPoolExecutor?
Офлайн
0
спасибо
я забыл уточнить что приведенный выше код был написан для питона 2.5
И да, вроде как в нем нельзя делать setDaemon, потому что он сам по себе представляет объект синхронизации, то есть при освобождении обязательно ждет завершения всех потоков.
Отредактировано (Авг. 1, 2011 12:17:27)
Офлайн