Spring batch has some good support to work in parallel (multi-thread/multi-process). You might want to have a look at
remote chunking
I (think) your particular problem could also benefit from the
partitioning technique
Have a look the documentation isn't too much to overwhelm, but covers everything that's needed.
You might also want to look at the samples
provided.