Форум сайта python.su
Подскажите как регулировать максимальное количество потоков в Python. Я использую модуль threading
Офлайн
felix, наверно, одного модуля threading тебе будет не достаточно. Чтобы регулировать количество потоков можешь все потоки закидывать, к примеру, в очередь. А дальше в Queue есть поле maxsize которое и регулирует количество элементов.
Офлайн
Вообще-то для этого обычно используется ThreadPool.
Идея следующая: создания потока занимает много времени.
Можно сделать сразу несколько потоков, которые ждут работы.
В ThreadPool отправляется задача (обычный callable подойдет).
Она подхватывается первым свободным потоком. Вторая - вторым свободным.
Когда свободных нет - ставится в очередь.
Освобождается рабочий поток - берется задача из очереди, если есть.
Если нет - поток переводится в ждущий режим.
И т.д.
Простейший пример - ASPN Python Cookbook.
Более красивые и полезные реализации - здесь, например, или здесь.
Короткое описание - на wikipedia.
Офлайн
А если надо Что бы все потоки запустились одновременно?
Офлайн
А зачем?
Офлайн
А если надо, что бы одновременно около 1006 поток запустилось? У меня просто запускается, но пишет, что не может создать новый поток…
Офлайн
Одна тема – один вопрос!
Офлайн