title: Grasping the Node JS alternative to multithreading
body: <p>If I understand correctly Node JS is non blocking...so instead of waiting for a response from a database or other process it moved on to something else and checks back later.</p>
  
  <p>Also it is single threaded.</p>
  
  <p>So does all this mean that a given Node JS process can fully and efficiently utilize a single CPU core but it will not use any other core on the machine, as in, it will never use more than one at a time.</p>
  
  <p>This of course means that the other CPUs can still be used by other processes for things like SQL database or other intentionally separated CPU heavy subroutines as long as they are a separate process.</p>
  
  <p>Also in the event that the Node JS process has an endless loop or long running function, that process is no longer useful in any way until the endless loop or long running function is stopped (or whole process killed).</p>
  
  <p>Is all this right? Am I correct in my understanding?</p>