![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: 1 Всего: 3 |
Доброго времени суток!
Есть задача. На входе имеется несколько очередей задач, выполнение которых нужно распараллелить, но таким образом, чтобы одновременно выполнялись задачи из разных очередей. Так же необходимо, чтобы количество одновременно выполняющихся задач было равно количеству ядер (процессоров). Подскажите, как это можно реализовать на JDK7 без использования сторонних библиотек? |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
Узнаете количество ядер, запускаете соответствующее число потоков, распределяете между ними задачи.
-------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: 1 Всего: 3 |
Привет, К.О.!
|
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
Ну если Вам это очевидно, тогда в чем заключается Ваш вопрос ![]() -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Возьмите Fork/Join Framework. Он в семерке входит в состав JDK. От обычно пула его отличает в том числе умение рабочих потоков таскать задачи друг у друга, то есть если одна очередь иссякнет, то рабочий поток не будет простаивать.
Остается только задать начальный размер пула по количеству доступных ядер и получаем искомое. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Ну, вот так можно узнать количество ядер. Ну, а для второй части Вашего вопроса можно ипользовать Fork/Join Framework из JDK -7
Это сообщение отредактировал(а) Pawl - 27.6.2012, 16:12 -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |