作用:1.保证变量写操作的可见性
2.保证变量前后代码的执行顺序
volatile 关键字告诉编译器该变量可能会在程序的任意时刻被改变,不应该被优化或缓存,每次访问该变量时都应该从内存中读取。在多线程程序中,如果一个变量可能被多个线程同时访问和修改,那么就应该将其声明为 volatile,以确保每个线程都能看到该变量的最新值。
如果不加volatile关键字,编译器可能会对bRunning_进行一定程度的优化,从而导致程序的行为出现意外的错误。因此,在多线程程序中,如果一个变量会被多个线程访问并修改,应该使用volatile关键字来修饰它。