![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Ораситель |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.9.2010 Репутация: -1 Всего: -1 |
Добрый день.
Помогите пожалуйста организовать потоки. есть класс, в котором есть метод main, который должен вызывать метод doit()
мне нужно: Сделать так, чтобы метод main вызывал obj.doIt(); то количество раз, сколько указанно в count. ![]() Подскажите пожалуйста. |
|||
|
||||
kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: нет Всего: 5 |
А при чем тут потоки?
-------------------- ![]() |
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
Если, всё-таки через потоки, то класс А надо сделать, например, Runable и реализовать метод run:
и далее в main порождаешь кол-во объектов, заданных в count и каждый запускаешь. В конце не забудь указать метод join чтоб дождаться завершения потоков. -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
Ораситель |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.9.2010 Репутация: -1 Всего: -1 |
Metal_Heart, спасибо, сделал, но все равно не работает
Все равно не работает. Метод вызывается только один раз ... |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
А размер списка count ты проверял ? Он больше 1 ?
|
|||
|
||||
Ораситель |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.9.2010 Репутация: -1 Всего: -1 |
AntonSaburov, да, значение = 5
|
|||
|
||||
Ораситель |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.9.2010 Репутация: -1 Всего: -1 |
||||
|
||||
nc30 |
|
||||||
![]() Интересующийся :) ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 24.6.2010 Где: Санкт-Петербург Репутация: 5 Всего: 8 |
Можно с этого момента поподробнее? У меня похожая ситуация: главный поток в цикле порождает несколько потоков, которые должны параллельно отработать. Главный поток должен дождаться завершения порожденных и вывести результаты их работы. Если я делаю так:
Другие варианты, которые пришли на мысль вместо использования join(): 1) Поставить после цикла while: Thread.sleep(1500). В течении этого времени порожденные потоки успевают отработать. Ненадежно и некрасиво. 2) Записывать порожденные потоки в коллекцию threads. Затем после окончания while:
3) С приоритетами нет 100% гарантии. Как лучше поступить? ![]() UPD: Перенес в новую тему. Это сообщение отредактировал(а) nc30 - 18.9.2010, 06:04 |
||||||
|
|||||||
Ораситель |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.9.2010 Репутация: -1 Всего: -1 |
nc30, млин, чувак, создай свою тему.
|
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
nc30, как насчет использования CyclicBarrier? Вот тривиальный пример на суммирование элементов матрицы. Несколько потоков суммируют каждый свою строку, а после их завершения специальный поток суммирует их результаты:
Это сообщение отредактировал(а) jk1 - 17.9.2010, 20:55 -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
Ораситель |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.9.2010 Репутация: -1 Всего: -1 |
пипец, т.е. на винграде одни дибилы в джаве сидят ? Потоки не знаете, господа ?
Это сообщение отредактировал(а) Ораситель - 18.9.2010, 02:38 |
|||
|
||||
dobrolub |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Есть такие методы.
Я не понимаю твоё описание задачи. Может и другие - тоже. Это сообщение отредактировал(а) dobrolub - 18.9.2010, 03:02 |
||||
|
|||||
Ораситель |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.9.2010 Репутация: -1 Всего: -1 |
||||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
код, что вверху вызовет метод doIt 10 раз с интервалом 10 секунд из одного потока.
|
|||
|
||||
nc30 |
|
||||
![]() Интересующийся :) ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 24.6.2010 Где: Санкт-Петербург Репутация: 5 Всего: 8 |
![]()
Ораситель Извини, дружище ![]() Переношу свой вопрос в новую тему ![]() Это сообщение отредактировал(а) nc30 - 18.9.2010, 05:58 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |