# Java "volatile" Anahtar Kelimesi "volatile" anahtar kelimesi deÄiÅkenin sakladıÄı deÄerin Threadâler tarafından okunmaya çalıÅıldıÄında hepsinde aynı deÄerin okunacaÄının garantisini verir. Bilgisayar mimarisinde ana hafıza bölgesi vardır. Bir program çalıÅtıÄı süre boyunca iÅlediÄi veriler ve program komutları bu ana hafıza bölgesinde saklanır. Bu hafıza bölgesi RAM diye bilinir. Ayrıca, bilgisayar mimarisinde iÅlemciler (CPU) vardır. CPU ile hafıza bölgesi sürekli haberleÅme halindedir. Sıkı bir iletiÅim trafiÄi vardır. Bu nedenle aÅaÄıda da görüldüÄü gibi CPU tarafında küçük hafıza bölgeleri bulunur. Bunlara önbellek (cache) adı verilir. Bu önbellekler, ana bellekten veri okuma-yazma hızını minimum seviyeye düÅürmek için kullanılmaktadır. Sık kullanılan deÄiÅken deÄerlerini bu önbellek bölgelerine yerleÅtirilirler. Böylece sürekli ana hafızaya giderek zaman kaybetmek yerine daha hızlı iÅlem görürler. "volatile" anahtar kelimesi ile iÅaretlenmiÅ bir deÄiÅkenin deÄerine eriÅmek gerektiÄinde direkt olarak ana hafızadan alınacaÄını ve ilgili deÄiÅkene yazma iÅlemi uygulanacaksa yine direkt olarak ana hafıza bölgesine yazılacaÄını belirtilmiÅ olunur. Akılda **"Tamam anladık ana bellekte tutuluyor da benim kafamda hala oturmayan Åeyler var."** gibi düÅünceler oluÅmuÅ olabilir. Bu tür sorulara yanıt olarak Åöyle bir senaryo düÅünülebilir. ÃrneÄin, Threadler arasında kontrol edilen bir deÄiÅkenin olduÄu multithread bir uygulama yazıldıÄını ve bu uygulamayı da onlarca thread tarafından çalıÅtırılabildiÄini varsayalım. Ayrıca bu threadlerin de iÅlemcide farklı çekirdeklerde çalıÅtırılabileceÄini unutmayalım. Böyle bir senaryoda tüm threadler aynı ön belleÄi kullanamayacaÄı için programın çalıÅmasında tutarsızlıklar oluÅabilecektir. Bu senaryoda yer alan kontrol deÄiÅkeni "**volatile**" olarak iÅaretlendiÄinde ön bellek yerine ana bellekte tutulacaktır. Bu sayede tüm threadler deÄiÅkenin durumunu eÅ zamanlı olarak kontrol edebileceklerdir. ##### Kullanımı: ```java EriÅim_Belirteci volatile Veri_Tipi DeÄiÅken_Adı; ```  ```java private volatile int orderNo; ``` Yukarıda QMatic örneÄimizde "volatile" anahtar kelimesinin kullanımını gördük.