volatile: The Multithreaded Programmer's Best Friend By Andrei Alexandrescu, February 01, 2001 The volatile keyword was devised to prevent compiler optimizations that might render code incorrect in the presence of certain asynchronous events. I don't want to spoil your mood, but this column addresses the dreaded topic of multithreaded programming. If — as the previous installment of Generic<Progra