avatar-decorate
韩立韩老魔 level
获赞
229
粉丝
76
关注
6
看过 TA
1106
门头沟学院
2022
Java
IP属地:福建
大势已去
私信
关注
头像
2022-01-26 17:46
门头沟学院 Java
一面(30分钟)2021.10.26   1、SpringCache的原理(项目中有用到)   2、Redis除了用缓存还能用在什么场景   3、自己设计排行榜的数据结构(业务上)   4、Redis和Memcached的区别   5、为什么Redis的单线程快   6、RPC的原理   7、RPC调用远程方法就像调用本地方法那么简单是怎么实现的(动态代理)   8、什么样的场景会出现线程安全问题(从JVM上 volatile??)   9、线程池的核心参数   10、线程池的执行原理   11、拒绝策略   12、MQ的使用场景   13、如何保证消息不丢   14、如何保证消息的顺序   ...
在写文章的里根很想在...:8.是不是想让您回答那个经典场景:volatile只能保证线程之间的可见性,而不保证原子性,当用volatile对一个变量x修饰后,用多个线程对这个变量x进行++操作,如果这个地方不加锁的话,其实还是有线程安全问题的,因为++这个操作,在JVM底层是三个操作(1.getstatic:从主内存中取到x的值 2.iadd:将x+1 3.putstatic:将当前结果从工作内存拷贝到主内存),当然1操作肯定是正确的,2操作的话,如果线程很多的话,可能其他线程已经改变了x的值,所以当进行3操作的时候,拷贝到主内存中的值可能是偏小的,最后会导致和我们想要的答案偏小。
投递58集团等公司9个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务