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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массив из потоков, thread  
:(
    Опции темы
sergioK
Дата 1.11.2009, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

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



cоздаю потоки в цикле 

Код

public static void main(String[] args) throws MalformedURLException, IOException, InterruptedException {
String[] list={"spy","qqqq","aig" ,"aa","brcm","aapl" ,"rimm","apol","abt" ,"pot","acs","agn" ,"edu","ero","jdk",
                  "rsw","ry" ,"xom","BAX","ebay","xle","hpq","c","sun","f","fnm"} ;     
        StockData stockData;
     for(String share:list){
         stockData = new StockData(share);
         stockData.start();        
           }    
    }


где StockData - extends Thread
как мне померить время работы самого цикла ? т,е другими 
дождаться когда все потоки будут завершены , но нельзя пользовать join т,к следующий поток не должен ждать пока предыдущий завершиться , 
PM MAIL   Вверх
goodday1941
Дата 1.11.2009, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

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



ну повесить измерения длительности на выполнения самого треда StockData, ну и далее самый длинный и будет нужным Вам временем


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
sergioK
Дата 1.11.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

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



Цитата(goodday1941 @ 1.11.2009,  02:21)
ну повесить измерения длительности на выполнения самого треда StockData, ну и далее самый длинный и будет нужным Вам временем

решил при помощи статик переменных, теперь вопрос в другом, программа должна запускать до 10000 средов, это максимально ,
реально от 50 до 100, компьютер не грохнеться ? если писать на С это  так-то решит проблему ?

PM MAIL   Вверх
goodday1941
Дата 1.11.2009, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

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



че ему грохаться то ) главно что бы ресурсов хватило

а вообще к чему такое колличество тредов?
может лучше ограничить к примеру сотней, а остальных в очередь слать?


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
sergioK
Дата 1.11.2009, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

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



Цитата(goodday1941 @ 1.11.2009,  13:03)
че ему грохаться то ) главно что бы ресурсов хватило

а вообще к чему такое колличество тредов?
может лучше ограничить к примеру сотней, а остальных в очередь слать?

вот я и спрашиваю ресурсов хватит ?

кол-во средов - требование задачи , 
юзер на экране выбирает симбол по нему строиться URL из которого беруться данные,
потом он может выбрать еще один символ- стоиться новый URL , 
и так он может выбрать до 10000 симболов , теорититески,
больше 50 он физически не сможет просмотреть глазами,
если я открою  скажем 10 нитей ,то будут приходить лишние данные и это замедлит выдачу нужных, а 
условием задачи является показ данных в реальном времени , т,е задержка в 0,5 секунды критична ,
при это сами данные все время меняються , 
у меня PC а не 12процесорный MF за 700кило баксов  smile 
какие варианты ? 

PM MAIL   Вверх
Skynin
Дата 1.11.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: 6
Всего: 10



Цитата

кол-во тредов - требование задачи 

Ни одна задача задача не требует количества тредов.

Потоки - это способ реализации задачи, а не - требование. Как говорил А. Кокс - "Многопоточное программирование предназначено для тех кто не умеет программировать конечные автоматы"

10000 для озвученной задачи - явно неверный путь проектирования, тем более что уже указано: "теоретически,
больше 50 он физически" и "задержка в 0,5 секунды критична". 
За какое время работы программы может появится 10000 потоков?
И сколько в действительности будет потоков одновременно?
Какое время на переключение между потоками будет расходоваться при 10 тысячах потоков?

Пример: To summarize, all the servlet containers did well up to about 4000 connections - Tomcat Scales to 16,000 Concurrent Connections

Обращение к большому числу внешних соединений лучше делать с помощью неблокирующих функций java.nio.
Apache MINA

Цитата

какие варианты ? 

Перепроектировать, если действительно одновременно будут работать 10 тыс потоков.
Оставить как есть, если пользователь не в состоянии в секунду набирать 10 тыс символов.

P.S.
Цитата

вот я и спрашиваю ресурсов хватит ?

Сколько одновременных соединений эффективно поддерживает конкретная ОСь?
Утрировано - толку от 10 тыс потоков, если это Windows XP c непропатченным TCP.SYS где зашито 10 half-коннектов. 9990 потоков все равно будут стоять и ждать когда ОСь даст возможность JVM открыть новое TCP соединение. 

Ресурсов то наверное хватит, а вот как оно будет работать... могут и секунды уходить на ожидание результатов работы конкретного потока.

Это сообщение отредактировал(а) Skynin - 1.11.2009, 14:24
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
sergioK
Дата 1.11.2009, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

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



Цитата(Skynin @ 1.11.2009,  14:10)
]

Обращение к большому числу внешних соединений лучше делать с помощью неблокирующих функций java.nio.
Apache MINA

Как его подключать ? скачал , добавил жары в Эклипсе , он их не видит, 
на сайте они говорят Verify the integrity of the files 
не помимаю что с этим делать ? 


PM MAIL   Вверх
ivanovpv
Дата 2.11.2009, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 4
Всего: 28



Цитата(sergioK @  1.11.2009,  02:00 Найти цитируемый пост)
cоздаю потоки в цикле 


Есть такая штука называется ThreadGroup - группа/массив потоков, в классе есть средства группового управления.


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

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

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


 




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


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

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