title: Java Performance Processes vs Threads
body: <p>I am implementing a worker pool in Java. </p>
  
  <p>This is essentially a whole load of objects which will pick up chunks of data, process the data and then store the result. Because of IO latency there will be significantly more workers than processor cores.</p>
  
  <p>The server is dedicated to this task and I want to wring the maximum performance out of the hardware (but no I don't want to implement it in C++). </p>
  
  <p>The simplest implementation would be to have a single Java process which creates and monitors a number of worker threads. An alternative would be to run a Java process for each worker. </p>
  
  <p>Assuming for arguments sake a quadcore Linux server which of these solutions would you anticipate being more performant and why?</p>
  
  <p>You can assume the workers never need to communicate with one another.</p>