Yes, if two or more threads access the same variable, then you must make it atomic or use locks around the variable.
The reason has to do with cache consistency on the processor level.