1.4脏读
1.4 脏读
2023-09-11 14:14:08 时间
脏读:
对于对象的同步和异步的方法,我们在设计自己的程序的时候,一定要考虑问题的整体,不然就会出现数据不一致的错误,很经典的错误就是脏读.
首先是主线程,走着走着出现一个t1线程,t1执行run方法,调用setValue();主线程1秒的时候调了getValue()方法;
从上面看,在t1线程2秒内设置值得时候,主线程睡眠一秒后就去取值了
我希望设置值的时候没有人来打扰我,就是希望在setValue()的时候,不要去getValue()
所以需要在getValue()和setValue()两个方法上都加上synchronized关键字,保证setValue()执行结束之后,再去getValue()取值.
===================================================================
示例总结:
在我们对一个对象的方法加锁的时候,需要考虑业务的整体性,即为setValue/getValue方法同时加锁synchronized同步关键字,保证业务(service)的原子性,不然会出现业务错误(也从侧面保证业务的一致性)
厉害了!!!
相关文章
- 互联网企业安全高级指南1.4 不同规模企业的安全管理
- 分布式消息中间件Metaq发布1.4.3
- 《嵌入式Linux基础教程(第2版)》——1.4 标准及相关组织
- 《SQL入门经典(第5版)》一一1.4 本书使用的数据库
- 1.4 OpenCL应用程序的第一印象
- 《Spring 3.0就这么简单》——1.4 持久层
- 《嵌入式 Linux C 语言应用程序设计(修订版)》一1.4 嵌入式系统硬件平台选型
- 《编程珠玑(续)(修订版)》—第1章1.4节开发性能监视工具
- 《Cucumber:行为驱动开发指南》——1.4 Cucumber如何工作
- 《Unity 5.x游戏开发实战》一1.4 开始一个关卡
- 《黑客秘笈——渗透测试实用指南(第2版)》—第1章1.4节实践
- 《树莓派实战秘籍》——1.4 技巧04更新固件
- 《数学建模:基于R》一一1.4 分布检验
- 《大规模Java平台虚拟化与调优》——1.4 本章小结
- 《黑客大曝光:移动应用安全揭秘及防护措施》一1.4 小结
- 《C语言解惑》—— 1.4 千万不要忘记我