![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Synchronized
sh苏苏
写的一手好bug
展开
-
学习synchronized
修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 就是用synchronized修饰实例对象中的实例方法,注意是实例方法不包括静态方法 这个锁是当前对象的,如果是同一个对象则线程安全,如果不是同一个对象,修改全局变量则不安全 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 静态方法的锁是class本身,可以解决不是同一个对象访问时造成的安全问题 修饰代码...原创 2019-05-21 17:27:25 · 98 阅读 · 0 评论 -
不用synchronized和lock,实现线程安全的单例模式
转自(https://blog.csdn.net/vincentff7zg/article/details/58057668) 总结: 单例模式必然会被多个线程访问。多线程访问一定要注意锁的问题。参考博主之前分享的转载文章《java中的锁》,有几种方式如下: 自旋锁类锁和对象锁共享锁和排它锁偏向锁互斥锁闭锁活锁分段锁无锁 无状态编程线程本地存储volatileCAS协程...转载 2019-05-22 11:32:32 · 484 阅读 · 1 评论 -
如何实现线程安全的单例模式
单例模式懒汉式 这个模式天生就是线程安全的,在类加载的时候就会初始化实例,但是这种模式的问题是内存中不管会不会用到这个对象,它都一直在那放着 volatile+双重检查锁(DCL) 双重检查锁保证了当前时刻只有一个线程可以进来初始化实例,而volatile保证了初始化实例的时候不会发生指令重排序,导致对象为null ...原创 2019-05-23 10:11:24 · 896 阅读 · 2 评论