title: Stack and Heap allocation
body: <p>I'm looking into the memory model a little more and am struggling with understanding how many heap's exist in a process. </p>
  
  <p>So if we have 1 process with 5 threads in it, am I correct in saying that we'd have 5 stacks and 1 heap? </p>
  
  <p>If so, can the threads access one another's stacks (or is this exactly why they have separate Stacks, to prevent corruption), and if there's just 1 heap, then obviously they all access this heap, hence the need for locking with multiple threads? Am I understanding this correctly?</p>