Dubbo源码Debug-Double Check考点

Dubbo源码Debug-Double Check考点

说说看,你觉得这个在多线程并发的情况下会有问题吗?

Dubbo源码Debug-Double Check考点

考点:1、指令重排,实际上一个bean的创建的创建的指令被分成了两条一条是bean存储空间的创建,另一条是bean的初始化执行。这两条指令可能被重排序。

2、如果先执行了bean存储空间的创建,那么,另外一个线程判断if(instance==null)就是不为空了,继续使用instance的内容,但是另外一条初始化的指令可能还没有执行完成。使用一个未初始化完成的bean可能出现未知错误。

3、使用volatile关键字修饰禁止使用设计的代码做指令重排。

上一篇:Blink流式计算-Kafka接入demo


下一篇:分布式爬虫和搜索的设计与实现