как они соотносятся с продолжениями, найденными в языках программирования?
У них нет ничего общего, кроме названия. Это всего лишь механизм освобождения текущего потока, предоставляющий Servlet
API для хранения и восстановления его состояния, но все это, скорее, выполняется вручную, в отличие от реальных продолжений, где состояние автоматически выводится из текущего контекста.
Прототипным примером для случаев, когда это имеет смысл, являются многоуровневые (составные) веб-сервисы, где одному сервису нужно сделать много запросов к другим сервисам, и пока эти запросы выполняются, текущий поток освобождается. По завершении запросов (что может быть выполнено асинхронно в некоторых других потоках) вызывается метод сервлета resume
, который затем собирает ответ из результатов запросов.