java 多线程读一个变量需要加锁吗
大家讲道理
大家讲道理 2017-04-17 11:06:19
[Java讨论组]

如题,java里面多线程读一个变量(const, static等等),不修改该变量,需要加锁或是用synchronized定义一个get方法吗? 这种情况应该怎么处理 求教

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
黄舟
  1. 如果只是读操作,没有写操作,则可以不用加锁,此种情形下,建议变量加上final关键字;
  2. 如果有写操作,但是变量的写操作跟当前的值无关联,且与其他的变量也无关联,则可考虑变量加上volatile关键字,同时写操作方法通过synchronized加锁;
  3. 如果有写操作,且写操作依赖变量的当前值(如:i++),则getXXX和写操作方法都要通过synchronized加锁。
高洛峰

只读不用加锁。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号