|
|
|
Пул потоков шедулера
|
|||
|---|---|---|---|
|
#18+
Есть метод срабатывающий с периодичность 5 секунд. Бин с методом описан в хмл, для шедулера указан пул потоков равным 10. Суть метода - обработка объекта полученного из очереди. Проблема в том что стартует только 2 потока ( при чем не понимаю почему именно 2 (возможно потому что на процессоре multi threading и на самом деле работает 1 ядро), но почему так если в доке указано что при указании пула потоков будет несколько потоков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 09:57 |
|
||
|
Пул потоков шедулера
|
|||
|---|---|---|---|
|
#18+
AK1988, AsyncConfigurer ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 10:13 |
|
||
|
Пул потоков шедулера
|
|||
|---|---|---|---|
|
#18+
Может просто больше не требуется и все успевает обработаться двумя? Потоки в пуле могут создаваться по-требованию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 13:21 |
|
||
|
Пул потоков шедулера
|
|||
|---|---|---|---|
|
#18+
Usman, если добавить аннотацию @Async, то срабатывает по сути так же, но асинхронно, т.е. в метод заходит многими потоками, но, если метод обрабатывает логику (так сказать активен), то одновременно обработка идет только в 2 потока и остальные потоки не срабатывают пока метод в одном из потоков не отработает. Получается много потоков, но почему-то одновременно работают только 2, а в конфиге их 10. Суть метода выборка и обработка первого элемента в очереди, т.е. метод сработал, мы взяли объект из очереди и выполнили логику, потому ничего не мешает методу срабатывать для каждого потока fixxer, в том и дело что елементов в очереди больше двух, например, в очередь добавлено 5 объектов, пул потоков равен 10, ожидается что активируется 5 потоков и каждый начнет обрабатывать логику, а на деле активируется 2 потока и остальные не срабатывают если не отработал метод в одном из этих двух потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 16:24 |
|
||
|
Пул потоков шедулера
|
|||
|---|---|---|---|
|
#18+
AK1988одновременно обработка идет только в 2 потока и остальные потоки не срабатывают пока метод в одном из потоков не отработаетзначит что-то блокирует см. https://ru.wikipedia.org/wiki/Неблокирующая_синхронизация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 16:33 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=67&tid=2122885]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 307ms |

| 0 / 0 |
