Isn't this explained by there only being one function that is shared by all your threads?
No because each instance of the function has a differnt thread and environment.