Eric Lippert has a nice blog post entitled What is this thing you call “thread safe”? about the definition of thread safety as found of Wikipedia.
3 important things extracted from the links :
“A piece of code is thread-safe if it functions correctly during
simultaneous execution by multiple threads.”“In particular, it must satisfy the need for multiple threads to
access the same shared data, …”“…and the need for a shared piece of data to be accessed by only one
thread at any given time.”
Definitely worth a read!