|
|
|
Очередь потоков
|
|||
|---|---|---|---|
|
#18+
Подскажите способ, как реализовать в Java следующее: 1) генерируются экземпляры класса Runnable в количестве 1000 штук 2) кладуться в очередь (пул?) исполнения 3) когда исполнится последний поток из очереди продолжить выполнение программы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:43 |
|
||
|
Очередь потоков
|
|||
|---|---|---|---|
|
#18+
Pierre Cardin, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Если использовать Callable, то можно засабмитить сразу всю пачку. https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html#invokeAll(java.util.Collection) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:51 |
|
||
|
Очередь потоков
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, сразу вопрос - если я инициализирую ExecutorService как: Код: java 1. могу я при этом сразу циклом в него "засунуть" 1000 потоков - они все будут положены в очередь и постепенно выполнены? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:54 |
|
||
|
Очередь потоков
|
|||
|---|---|---|---|
|
#18+
Pierre Cardin, Вы в очередь executor помещаете задачи, а не потоки. Пока вы будете туда помещать потоки, эта фигня будет для вас магическим ящиком. Runnable/Callable - это задача (Task), а не поток (Thread) Эти задачи executor помещает в очередь Queue Оттуда он из достаёт и запускает через потоки, которых максимум 20. Это всё в первом приближении, ещё существует 100500 вариаций и с количеством потоков и с лимитом очереди и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 14:05 |
|
||
|
Очередь потоков
|
|||
|---|---|---|---|
|
#18+
Все получилось, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 14:17 |
|
||
|
Очередь потоков
|
|||
|---|---|---|---|
|
#18+
А если потоки на протяжении работы программы постоянно растут, как на изображении, то после цикла с future.get() должен стоять executor.shutdown() ? Или этот график в jconsole показывает суммарное число порожденных потоков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 18:12 |
|
||
|
Очередь потоков
|
|||
|---|---|---|---|
|
#18+
Да, shutdown() помог. Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 18:39 |
|
||
|
Очередь потоков
|
|||
|---|---|---|---|
|
#18+
Pierre Cardin, Есть смысл переиспользовать executor , а не создавать каждый раз новый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 21:00 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=111&tid=2124646]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 348ms |

| 0 / 0 |
