Play Framework: что происходит, когда запросы превышают доступные потоки

У меня есть один поток в запросе блокировки обслуживания пула потоков.

  def sync = Action {
    import Contexts.blockingPool
    Future { 
        Thread.sleep(100)
    } 
    Ok("Done")
  }

В Contexts.blockingPool настраивается как:

custom-pool {
    fork-join-executor {
            parallelism-min = 1
            parallelism-max = 1
    }
}

Теоретически, если вышеуказанный запрос получает 100 одновременных запросов, ожидаемое поведение должно быть следующим: 1 запрос должен находиться в спящем режиме (100), а остальные 99 запросов должны быть отклонены (или помещены в очередь до истечения времени ожидания?). Однако я заметил, что дополнительные рабочие потоки создаются для обслуживания остальных запросов. Я также заметил, что задержка увеличивается как (становится медленнее для запроса на обслуживание), так как количество потоков в пуле становится меньше, чем полученные запросы.

Какое поведение ожидается, если получен запрос, превышающий настроенный размер пула потоков?

Ответы на вопрос(2)

Ваш ответ на вопрос