title: How Java8's Collection.parallelStream works?
body: <p><code>Collection</code> class comes with a new method "<code>parallelStream</code>" in Java SDK 8. </p>
  
  <p>It is obvious that this new method provides a mechanism to consume collections in parallel.</p>
  
  <p>But, I wonder about how Java achieve this parallelism. What is the underlying mechanism? Is it simply a multithreaded execution? Or does fork/join framework (coming with Java SDK 7) step in? If the answer is neither then, how does it work and what are the advantages of it over the other two mechanisms?</p>