黑马程序员技术交流社区

标题: 线程—单例设计模式下的安全问题 [打印本页]

作者: 水蛭31    时间: 2015-6-18 08:37
标题: 线程—单例设计模式下的安全问题
线程—单例设计模式下的安全问题
单例设计模式下懒汉式的作用:延迟加载,
如图:
,当有多个线程执行到if语句时,

这时被其他的线程抢夺了CPU, 那么这样的话, 就会产生多个对象, 这样就会产生安全隐患。
因为单例设计中,只能有一个该类对象被创建。
那如何解决呢?
这里就需要同步, 前提: 多个线程在操作共享资源。
,这样就可以解决,

但是这样的话, 每次都要先判断这个锁,这样会比较低效,
因此:在锁的上面,再加一个判断,

这样双重判断,减少了锁的判断次数, 就会提高效率了,

作者: 水蛭31    时间: 2015-6-18 08:39
补充: 这里的函数是静态的, 所以锁就只能是该类的字节码文件对象了。
作者: 银哥    时间: 2015-6-18 08:46
分析很全面




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2