Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите разобраться с Thread? 
:(
    Опции темы
unkis
  Дата 27.4.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



Ребята такая проблема, есть цикл, который запускает новые Thread, надо сделать, что как только достигло определённое количество Threas к примеру 5, цикл как бы останавливается и ждёт пока кол-во Thread не у уменьшится хотя бы на один, и если уменьшилось, то прродолжает дальше работать и создавать новые Threads.

Как это реализовать?

вот так я создаю новые Thrads.
Код

while(requestCounter<100000){
requestCounter++;
                    NewThread t;
                    if (requestCounter%5000==0){
                        
                        t = new NewThread(requestLocationList);
                        Controller.threads.add(t);//добовляем Threads в лист, чтобы потом можно было подождать пока все закончат
                                                                    
                    }
}



--------------------
www.unkis.com
PM MAIL WWW   Вверх
_Y_
Дата 27.4.2007, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Mожет сделать счетчик Thread-ов threadCounter?  Если threadCounter<=5 запускается новый Thread, если нет - ставится  в очередь. а по окончании работы каждый Thread генерирует событие проталкиваюшее эту очередь.

А выглядеть это может так: обьект содержащий очередь Thread-ов. Внутри него и счетчик, и соответствующий слуштель, он Thread-ы и запускает когда решит нужным. А снаружи ему просто передаются новые обьекты-Thread-ы или команды на их создание.


Это сообщение отредактировал(а) _Y_ - 27.4.2007, 11:21


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
boevik
Дата 27.4.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



ещё вариант, использовать static variable - counter в классе requestLocationList
Когда run запускается увеличивать counter, при окончании run уменьшать.

Из while проверять сколько thred-ов бежит и соотвественно поступать полученому результату 


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
W0LF
Дата 27.4.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: нет
Всего: 20



Код

java.util.concurrent.ThreadPoolExecutor



--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
W0LF
Дата 27.4.2007, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: нет
Всего: 20



вот еще паттерн Executor

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  Executor.Pattern.pdf 153,09 Kb


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
unkis
  Дата 29.4.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



W0LF, 
то что надо, а можно небольшой пример


--------------------
www.unkis.com
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.