Найти - Пользователи
Полная версия: Количество потоков
Начало » Python для экспертов » Количество потоков
1
felix
Подскажите как регулировать максимальное количество потоков в Python. Я использую модуль threading
alafin
felix, наверно, одного модуля threading тебе будет не достаточно. Чтобы регулировать количество потоков можешь все потоки закидывать, к примеру, в очередь. А дальше в Queue есть поле maxsize которое и регулирует количество элементов.
Андрей Светлов
Вообще-то для этого обычно используется ThreadPool.
Идея следующая: создания потока занимает много времени.
Можно сделать сразу несколько потоков, которые ждут работы.
В ThreadPool отправляется задача (обычный callable подойдет).
Она подхватывается первым свободным потоком. Вторая - вторым свободным.
Когда свободных нет - ставится в очередь.
Освобождается рабочий поток - берется задача из очереди, если есть.
Если нет - поток переводится в ждущий режим.
И т.д.

Простейший пример - ASPN Python Cookbook.
Более красивые и полезные реализации - здесь, например, или здесь.

Короткое описание - на wikipedia.
AlSolo
А если надо Что бы все потоки запустились одновременно?
Андрей Светлов
А зачем?
AlSolo
А если надо, что бы одновременно около 1006 поток запустилось? У меня просто запускается, но пишет, что не может создать новый поток…
Александр Кошелев
Одна тема – один вопрос!
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