title: Best strategy to distribute workload to workers
body: <p>I have big amount of data, which I have to process and I want to use multithreaded approach.
  Let's say I have 1_000_000 objects, which have to be processed and I have thread pool of size 4 (8, 16).</p>
  
  <p>What is the best strategy to distribute this workload? I can think of 2 things:</p>
  
  <ol>
  <li>Each object = 1 task for executor service. Seems to be the worst decision, even comparing to processing everything in 1 thread.</li>
  <li>Divide the total number of object into number of workers. E.g. in case of 4 workers, each will get 250k objects to process. This is very straightforward and it seems to me that there can be some other options.</li>
  </ol>
  
  <p>Please share your thought and other approaches (probably something with FJP can be more efficient)</p>