Будет ли вызов метода бина в весеннем контексте из асинхронного метода действительно параллельным? - PullRequest
1 голос
/ 03 июля 2019

У меня есть контроллер с именем importController. У importController есть метод возвращаемого типа void, который вызывает асинхронный метод для списка объектов, передаваемых по проводам.

Логика асинхронных методов поддерживается методом в другом объекте в контексте Spring. Насколько я понимаю, все bean-компоненты в контексте Spring по умолчанию одноэлементны.

Будут ли вызовы асинхронных методов действительно выполняться в тандеме или они будут сглажены при вызове компонента?

Заранее спасибо за помощь, Дилан

1 Ответ

0 голосов
/ 03 июля 2019

Не имеет значения, является ли bean-компонент синглтоном, если его метод не равен synchronized

То есть, если у вас есть синглтон с методом public String foo() и он вызывается несколько раз в разных потоках, выполнение foo будет параллельным.

Однако, если foo синхронизируется внутри синглтон-компонента следующим образом: synchronized public String foo(), тогда потоки «по очереди» (не совсем, но вы понимаете мою точку зрения) для запуска метода foo.

Надеюсь, это поможет

...