Java多线程 什么是线程安全-权威定义与通俗易懂的解读
发布日期:2021-06-30 13:12:04
浏览次数:3
分类:技术文章
本文共 612 字,大约阅读时间需要 2 分钟。
文章目录
线程安全的权威定义
《Java Concurrency In Practice》的作者 Brian Goetz 对线程安全的定义:
当多个线程访问一个对象的时候:- 不用考虑这些线程在运行时环境下的调度和交替执行
- 不用进行额外的同步操作
- 或者在调用方进行任何其他的协调操作
调用这个对象的行为都可以获得正确的结果, 那么这个对象就是线程安全的
线程安全的通俗易懂的解读
上面的线程安全的定义有些晦涩难懂. 如下为通俗易懂的解读:
不管业务中遇到怎么样的多线程访问某个对象或者某个方法的情况, 在编写这个业务逻辑的时候,
**都不需要进行额外的处理(可以像单线程编程一样, 不用加锁等),**程序也可以正常运行(不会因为多线程而出错),那么就可以称之为线程安全.线程不安全的情况: 调用get方法的同时, 调用set, 这样会导致线程安全问题, 那么额外写的同步代码就是为了线程不安全写的 .
所有的代码都写成线程安全的, 也会有代价. 如果所有的代码都加上synchronized 锁 ,那就是会导致程序运行速度变慢.
如果知道一个类在使用的时候, 就不会运用在并发的场景, 那么也会降低设计成本 .
在使用一个外部提供的类的时候 ,就需要知道这个类有没有对线程安全做适配, 如果没有设计到线程安全, 那么就不要用在并发的场景. 例如在非并发的场景用HashMap, 并发的场景用ConcurrentHashMap转载地址:https://javaweixin6.blog.csdn.net/article/details/108314383 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月15日 18时01分20秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java多线程-基础知识
2019-05-01
java多线程-基本的操作及状态分析
2019-05-01
java多线程-Thread类的一些基本API
2019-05-01
java多线程-线程的同步
2019-05-01
java多线程-原子性,有序性,可见性
2019-05-01
java多线程-(无锁)CAS算法基础
2019-05-01
commons-csv的基本操作
2019-05-01
java 多线程之Exchanger
2019-05-01
java 多线程之Future与FutureTask
2019-05-01
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