网易互娱后端社招面试题及详细答案(真实面经版)
一、一面(基础技术+算法+高频场景题)
1.Java基础:volatile和synchronized的核心区别,实际业务怎么用?
参考答案:
我日常开发里经常用到这两个关键字,核心区别主要在三个维度:可见性、原子性、有序性,还有锁粒度。
第一,volatile只保证可见性和禁止指令重排,不保证复合操作原子性,比如i++这种读写结合的操作,volatile修饰依然会有线程安全问题;synchronized是重量级锁,三者全都能保证。
第二,锁粒度不同,volatile是变量级别修饰,无锁竞争、不阻塞线程,开销极小;synchronized修饰方
原创力文档

文档评论(0)