volatile(volatile关键字的作用)
volatile底层原理
volatile关键字在底层原理上起到了让变量具有可见性和禁止指令重排的作用在并发编程中,由于CPU的特性和编译器优化的原因,有些变量可能被缓存,不会同步到主存中,这样就会导致多线程并发访问时出现一些问题而使用volatile关键字可以保证每次被读取的时候都是从主存中读取,确保了可见性同时,volatile关键字也可以禁止一些指令重排,保证了操作的有序性如果你想编写高效、安全的多线程代码,在某些情况下,需要使用volatile关键字来保证线程之间的可见性和有序性但是要注意,volatile关键字并不是万能的,不能解决所有的多线程并发问题
volatile和fickle的区别
区别就是两者在表示易变的,反复无常的时意思是一样的,但两者意思还各有不同。具体不同如下,
volatile中文意思是adj.易变的,动荡不定的,反复无常的;(情绪)易变的,易怒的,突然发作的;(液体或固体)易挥发的,易气化的;(计算机内存)易失的,n.挥发物;<罕>有翅的动物
Thiskindoffiercenationalismisapowerfulandpotentiallyvolatileforce.这种强劲的民族主义势力是一股强大和潜在的不稳定的力量。
fickle中文意思是adj.浮躁的;易变的;变幻无常的
Theweatherhereisnotoriouslyfickle.这里的天气出了名的变化无常。
volatile(C#)是什么意思
volatile的本意是“易变的”,volatile定义的变量它的值在编译时是会改变的,跟const相反,而const定义的变量一直不会变的,如果变量加上volatile修饰,则编译器保证对此变量的读写操作都不会被优化(肯定执行)。





