If one thread reads a non-atomic primitive variable another thread is writing to, is it guaranteed to read the value either before or after the write or can it somehow read some corrupt version during the write?
I realize collection such as a linked list are another story.