![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| nighthare |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 24.12.2005 Репутация: нет Всего: нет |
Есть цикл, пусть i пробегает от 0 до M. Внутри цикла, выполняемая операция( назовем ее функцией perform(int i) ) зависит только от i и не зависит от (i-1,I+1, i-2, i+2 и т.д.). Есть N процессоров. Как грамотно распараллелить такой цикл, используя java? Может есть framework или шаблоны для этого, с учетом, что если подобные циклы встречаются не один раз, можно легко(используя код, скоторый написан 1 раз) применить к ним распараллеливание. ?
|
|||
|
||||
| Vitaly333 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
Наверное, как - то так:
|
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Для каждого i надо создать обьект типа Runnable , который в методе run() будет выполнять то, что в perform(i) должно быть. И эти обьекты ставить в очередь на выполнение в экзекютор , который есть пул потоков. Можно количество потоков в пуле сделать равным количеству процессоров.
http://java.sun.com/docs/books/tutorial/es...cy/exinter.html |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |