این کلمهی کلیدی در مبحث thread مطرح میشود. وقتی چند thread با یک متغیر (مثلا یک شی) عادی کار میکنند، ممکن است آن را cache کنند. یعنی هر thread ای که این متغیر را cache کند، یک نسخه از آن گرفته و با آن کار میکند (تغییرات اعمالی بر روی آن توسط یک thread، به سایر thread ها منعکس نمیشود)
اگر آن متغییر با کلمهی کلیدی volatile تعریف شود، تنها یک نسخه از آن متغیر وجود دارد و تغییراتی که یک thread بر روی آن انجام میدهد، بلافاصله در thread های دیگر منعکس میشود.
یک مثال از کاربردش هم در stop کردن یک thread (جواب این سوال)