volatile in Java and C# has precise semantics which makes it useful in certain situations especially in connections with synchronized statement like those described in the article. On the other hand ...