(concise?) definition of thread safety
There has been a lot of work on this, usually under the heading of "memory models".  See, for example:


The Java memory model
Foundations of the C++ Concurrency Memory Model by Boehm and Adve
Lots of recent work by Peter Sewell's group on C++ concurrency and hardware memory models