The memory model for the separate thread stacks is not as clean. These
stacks are contained in the stack area of the virtual address space, and are usually
accessed independently by their respective threads. We say usually rather than
always, because different thread stacks are not protected from other threads. So
if a thread somehow manages to acquire a pointer to another thread's stack, then
it can read and write any part of that stack.