【概念】类型限定符volatile

修饰符 volatile 告诉编译器不需要优化volatile声明的变量,让程序可以直接从内存中读取变量。对于一般的变量编译器会对变量进行优化,将内存中的变量值放在寄存器中以加快读写效率。

volatile 往往会用于多线程的修饰,比如:

volatile boolean isNext = false;

Thread A() {
    // 第一个工作
    // isNext = true;
}

Thread B (){
    if (isNext) {
        // 第二个工作
    }
}

这里volatile 就是从来标记isNext, 以确保线程B每次都重新从内存中读取isNext的值,第二个工作一定在第一个工作之后进行。

posted @ 2021-01-18 15:29  不溯流光  阅读(51)  评论(0编辑  收藏  举报