Java多线程 四种需要考虑线程安全的情况
发布日期:2021-06-30 13:12:09
浏览次数:3
分类:技术文章
本文共 529 字,大约阅读时间需要 1 分钟。
文章目录
四种需要考虑线程安全的情况
遇到以下四种需要考虑线程安全的情况,需要注意:
- 访问共享的变量或资源, 会有并发风险, 比如对象的属性, 静态变量, 共享缓存, 数据库等 例如此文提到的例子, 用共享变量进行++操作.
- 所有依赖时序的操作, 即使每一步操作都是线程安全的, 还是存在并发的问题. read-modify-write: 先读取, 再修改. check-then-act 先检查, 再执行. 实际上本质是一样的, 一个线程先获取数据, 再进行下一步的操作. 主要可能的问题是, 数据读取后, 还有可能被其他线程修改. 所以在这种依赖时序的情况下, 可以用synchronized锁等操作.
- 不同的数据之间存在绑定关系的时候. 例如IP与端口号. 只要修改了IP就要修改端口号, 否则IP也是无效的. 因此遇到这种操作的时候, 要警醒原子的合并操作. 要么全部修改成功, 要么全部修改失败.
- 使用其他类的时候, 如果该类的注释声明了不是线程安全的, 那么就不应该在多线程的场景中使用, 而应该考虑其对应的线程安全的类,或者对其做一定处理保证线程安全, 例如HashMap就不是线程安全的, 而ConcurrentHashMap则是线程安全的.
转载地址:https://javaweixin6.blog.csdn.net/article/details/108396743 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年05月05日 14时31分24秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
rocketmq(broker配置参数设置)不断更新中
2019-05-01
rocketMQ实战(四): hello world
2019-05-01
抖音、腾讯、阿里、美团春招服务端开发岗位硬核面试(完结)
2019-05-01
token超时刷新策略
2019-05-01
9种分布式ID生成方式,总有一款适合你
2019-05-01
由DFS到访问者模式
2019-05-01
字节的面试题到底有多难?大厂为何都注重算法?
2019-05-01
阿里大师呕心整理出来的分布式事务至尊级学习笔记!干货满满!
2019-05-01
膜拜!这份技术点拉满的Redis深度历险笔记,价值百万!
2019-05-01
RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC)
2019-05-01
xtrabackup备份之增量备份(二)
2019-05-01
《视频直播技术详解》系列:(6)编码和封装
2019-05-01
类函数重写、重载、覆盖示例
2019-05-01
五种主要多核并行编程方法分析与比较
2019-05-01
GB28181计算注册登陆时的鉴权信息
2019-05-01
人工智能为什么这么火?看看安防江湖30年血战就知道了
2019-05-01
“中国已建成世界上最大的视频监控网”背后的问题
2019-05-01
一个ps解复用H264和H264打包ps的动态库及demo
2019-05-01
“前端智能为安防产生新的数据价值”
2019-05-01
异或^ 的几个作用
2019-05-01