A while back I read this column:
which proposes "stealing" the volatile keyword to aid in establishing thread safety. This usage has nothing to do with the actual meaning of volatile; it just exploits the fact that it's part of the C++ type system.
Now, I came to the conclusion quickly that this was a bad idea. Neat, and I'd go with it in a second if there were a purpose-built keyword, but borrowing the volatile keyword for an unrelated use just seems to be asking for trouble; especially given the confusion which sometimes arises when Java programmers think that calling something volatile makes it thread safe (when it does nothing of the kind in C++).
I would like the opinions of the experts on this matter, however, because it's interesting enough as a concept.