volatile确实可以保证一个引用变量的可见性,但是volatile的数组只针对数组的引用具有volatile的语义,而不是它的元素.
于是可以预见的是类似disruptor这样的实现最好还是不要用long数组padding的方式来防止false sharing问题,这样反而会导致可见性问题.
除非使用Unsafe.getObjectVolatile,但是unsafe无法通过较为正常的方式调用(需要反射获得),此外unsafe调用门槛较高,需要设置偏移量。
所以,为了防falseSharing,padding方式还是选择前后8个long类型的方式.
数组内部元素无法保证可见性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
【未完】关于ConditionalOnClass注解
帥氣的濤啊
2024-05-14 14:37:18
Mellanox网卡开启SR-IOV
CQzhangyu
2024-05-14 14:33:58
linux安装cuda和cudnn
aozengling
2024-05-14 14:33:48
连接SQL Server报错
雪飛鴻
2024-05-14 14:29:37
uni-app实现上拉加载
賴忠標
2024-05-14 14:29:07
全面系统的AI学习路径,帮助普通人也能玩转AI
追逐時光
2024-05-14 14:27:17
vue3编译优化之“静态提升”
你假裝沒察覺
2024-05-14 14:26:37
又是一个月-20240513
eonie
2024-05-14 14:25:27
flask 如何保证返回json有序
張博的博客
2024-05-14 14:25:07
cmakelist的一个例子
xcywt
2024-05-14 14:18:46
apisix~lua插件开发与插件注册
張佔嶺
2024-05-14 14:17:56
apisix~自定义插件的部署
張佔嶺
2024-05-14 14:17:56