发动态

没有新消息

更多内容

#Java面试题库#请讲一讲synchronized和volatile区别

章先生

主要区别在于s满足可见性和原子性吧,但是v仅仅是满足了可见性。 两者在对可见性的实现上也有不同,v的可见性主要是在多个线程操作同一个公共内存中的数据时,能够做到相互通知:嘿,这个数据被我改了,你重新取一下!而s可见性就比较霸道,他直接把这个数据上锁了,别的线程也没法访问,等他自个玩舒服了,把数据也还回去了,才让另外的线程进来,这时候另外的线程拿数据就是被上一个线程玩完的数据,这样也达到了一个可见性 还有一个区别就是,v相对于s来说更加轻量。 (以上说法个人拙见,如有错误,还望指正)

20 赞+1
0
评论

0 条评论

说的太通俗易懂了
22-11-29
赞0
回复