Java 中的单利模式,及关键字 volatile 和 synchronized的使用

先上一个简单的单例懒汉模式的例子,并将关键字 volatile synchronized在单例中用起来;

Java 中的单利模式,及关键字 volatile 和 synchronized的使用

volatile关键字

我理解的作用,就是多个线程同时操作同一个变量时,保证不同线程拿到的都是修改后的同一变量;

synchronized

同步块(同步锁),通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用

synchronized 修饰方法 或者 代码块

 

volatile是Java提供的一种轻量级的同步机制,同synchronized相比,volatile更轻量级,在访问volatile变量时不会执行加锁操作,因此也就不会使执行的线程阻塞。但是volatile不能保证原子性,volatile可以配合synchronized保证原子性

 

较为浅显,不足之处也望各位大佬指出。