Java 中的单利模式,及关键字 volatile 和 synchronized的使用
先上一个简单的单例懒汉模式的例子,并将关键字 volatile 和 synchronized在单例中用起来;
volatile关键字
我理解的作用,就是多个线程同时操作同一个变量时,保证不同线程拿到的都是修改后的同一变量;
synchronized
同步块(同步锁),通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用
synchronized 修饰方法 或者 代码块
volatile是Java提供的一种轻量级的同步机制,同synchronized相比,volatile更轻量级,在访问volatile变量时不会执行加锁操作,因此也就不会使执行的线程阻塞。但是volatile不能保证原子性,volatile可以配合synchronized保证原子性。
较为浅显,不足之处也望各位大佬指出。