JdbcCursorItemReader
не является потокобезопасным, потому что он может обернуть один не потокобезопасный ResulSet
. Вот почему в многопоточной среде вам необходим synchronized
доступ к нему.
С другой стороны, JdbcPagingItemReader
является поточно-ориентированным. При использовании нескольких потоков каждый чанк выполняется в своем собственном потоке. Если вы настроили размер страницы так, чтобы он соответствовал интервалу фиксации, это означает, что каждая страница обрабатывается в одном и том же потоке.
Теперь большую часть времени нам нужно масштабировать скорее во время обработки и записи, чем во время чтения. Как правило, чтение выполняется достаточно быстро, чтобы удовлетворить наши потребности в масштабируемости. Но, как я уже сказал, если вам это действительно нужно, вы должны go использовать встроенный считыватель пейджинга или написать свой собственный потоковый считыватель.