Возможный способ синхронизации потока для метода в планировщике задач весной / во избежание состояния гонки в threadpooltaskexecutor - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь запланировать один метод, который будет выполняться каждую минуту весной с xml config как <property name="corePoolSize" value="4" /> <property name="maxPoolSize" value="10" /> <task:scheduled ref="methodscheduler" method="some_method()" cron="* * * * * *", и я пытаюсь выполнить некоторый процесс, используя для l oop в методе some_method().

Здесь я ожидаю, что один поток выполнит задачу и выдаст результат, например, скажем, если я вывожу 10 значений, тогда он должен быть как thread 1: i = 1, i = 2, i = 3.....i = 10, но я получаю, что 2 потока из пула пытаются получить доступ к одному и тому же ресурсу одновременно с результатом - thread 1: i = 1, thread 2: i = 1, thread 1: i = 2, thread 2: i = 2 ..... thread 1: i = 10, thread 2: i = 10.

Как можно ограничить работу одного потока для этого метода, чтобы избежать повторения?

...