Уведомления

Группа в Telegram: @pythonsu

#1 Июль 30, 2007 12:30:59

felix
От:
Зарегистрирован: 2007-07-10
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Количество потоков

Подскажите как регулировать максимальное количество потоков в Python. Я использую модуль threading



Офлайн

#2 Июль 30, 2007 14:36:53

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Количество потоков

felix, наверно, одного модуля threading тебе будет не достаточно. Чтобы регулировать количество потоков можешь все потоки закидывать, к примеру, в очередь. А дальше в Queue есть поле maxsize которое и регулирует количество элементов.



Офлайн

#3 Июль 30, 2007 19:56:56

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Количество потоков

Вообще-то для этого обычно используется ThreadPool.
Идея следующая: создания потока занимает много времени.
Можно сделать сразу несколько потоков, которые ждут работы.
В ThreadPool отправляется задача (обычный callable подойдет).
Она подхватывается первым свободным потоком. Вторая - вторым свободным.
Когда свободных нет - ставится в очередь.
Освобождается рабочий поток - берется задача из очереди, если есть.
Если нет - поток переводится в ждущий режим.
И т.д.

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

Короткое описание - на wikipedia.



Офлайн

#4 Фев. 27, 2011 11:39:39

AlSolo
От:
Зарегистрирован: 2010-11-12
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Количество потоков

А если надо Что бы все потоки запустились одновременно?



Офлайн

#5 Фев. 27, 2011 11:50:26

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Количество потоков

А зачем?



Офлайн

#6 Фев. 27, 2011 13:35:40

AlSolo
От:
Зарегистрирован: 2010-11-12
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Количество потоков

А если надо, что бы одновременно около 1006 поток запустилось? У меня просто запускается, но пишет, что не может создать новый поток…



Офлайн

#7 Фев. 27, 2011 13:57:49

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Количество потоков

Одна тема – один вопрос!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version