Synchronize读脏解决

对于业务需要同步的
同时,添加Synchronize关键字

比如,在getValue/setValue方法上
都加上synchronize关键字
保证,业务的一致性

package com.bjsxt.base.sync004;/*** 业务整体需要使用完整的synchronized,保持业务的原子性。**/
public class DirtyRead {private String username = "bjsxt";private String password = "123";public synchronized void setValue(String username, String password) {this.username = username;try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}this.password = password;System.out.println("setValue最终结果:username = " + username + " , password = " + password);}public synchronized void getValue() {System.out.println("getValue方法得到:username = " + this.username + " , password = " + this.password);}public static void main(String[] args) throws Exception {final DirtyRead dr = new DirtyRead();Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {dr.setValue("z3", "456");}});t1.start();Thread.sleep(1000);dr.getValue();}}

运行

Synchronize读脏解决相关推荐

  1. Synchronize读脏

    Synchronize读脏 对一个对象的方法加锁的时候,需要考虑业务的整体性 为setValue/getValue方法,同时加上synchronize同步关键字 保证业务的原子性,否则,会出现错误的结 ...

  2. 事务(ACID)、并发一致性问题(丢失修改、读脏数据、不可重复读、幻影读)、封锁(封锁粒度、类型、协议、MySQL 隐式与显示锁定)

    1. 事务 1.1 概念 事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚. 1.2 ACID 1.2.1  原子性(Atomic ...

  3. 共享锁、排他锁、互斥锁、悲观锁、乐观锁、行锁、表锁、页面锁、不可重复读、丢失修改、读脏数据...

    作者:T-Birds blog.csdn.net/weixin_36634753/article/details/90815755 共享锁(S锁): 又称为读锁,可以查看但无法修改和删除的一种数据锁. ...

  4. Linux多线程实践(6) --Posix读写锁解决读者写者问题

    Posix读写锁 int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock,const pthread_rwlockattr_t *restr ...

  5. 用信号量和读写锁解决读者写者问题

    用信号量和读写锁解决读者写者问题 参考文章: (1)用信号量和读写锁解决读者写者问题 (2)https://www.cnblogs.com/xybaby/p/6559212.html 备忘一下.

  6. MySQL事务的读脏

    所谓读脏,是指一个事务读取了,另外一个事务未提交的数据 首先,开启两个命令行窗口,模拟账户a和账户b 登录到数据库,chapter06 设置b账户,事务的隔离级别 MySQL默认的隔离级别是REPEA ...

  7. 90 后女科学家,四年完成清华大学硕博连读,解决多个世界级难题

    \ 文章 | 厉羽萱 来源 | 考博圈 我们经常能听到一句调侃90后的话:"90后是垮掉的一代",但事实并非如此,如今的90后已经正式进入各行各业,成了很多领域的主力人员.科学家是 ...

  8. MySQL幻读及解决方法

    这是一篇数据库隔离级别的科普文章,旨在了解数据库中著名的幻读现象,为了专注,对脏读.不可重复读不作讨论. 事务隔离级别 MySQL有四级事务隔离级别: 读未提交 READ-UNCOMMITTED: 存 ...

  9. 90后女科学家,四年完成清华大学硕博连读,解决多个世界级难题

    我们经常能听到一句调侃90后的话:"90后是垮掉的一代",但事实并非如此,如今的90后已经正式进入各行各业,成了很多领域的主力人员.科学家是一项神圣无比的职业,在很多人看来科学家都 ...

最新文章

  1. 条件限制select into_SQL全部知识点(夺回控制台掌控权,转义符,SELECT特定列,AND,OR,查询数值,比较运算)...
  2. 经典C语言程序100例之三一
  3. (23)VHDL实现乘法器
  4. 内燃机附件和部件行业调研报告 - 市场现状分析与发展前景预测
  5. 在行进中开火 Fire and Motion By Joel Spolsky
  6. 2017.0704.《计算机组成原理》-动态RAM
  7. WPF中Binding的验证
  8. 【先定一个小目标】Asp.net Core 在IIS上的托管运行
  9. php爬虫大数据抓取_数据分析|爬虫抓取东方财富网股吧帖子
  10. hurst指数matlab代码_Matlab 简介
  11. LSI存储论坛:6Gb SAS让DAS焕发新活力?
  12. apiDoc之api接口文档生成
  13. W3Cschool菜鸟教程离线版下载链接
  14. [深度学习] Python人脸识别库Deepface使用教程
  15. VS2017的C++开发心得(五)项目开发的文件夹管理
  16. ROCKET 数据可视化可以如此简单
  17. Second season nineteenth episode,Eddie does not move out
  18. Segment Anything万物皆可分割
  19. f5 gtm 工作原理_[转]F5负载均衡算法及基本原理
  20. 三阶齐次线性方程求通解_已知一个三阶常系数线性齐次微分方程的特征根

热门文章

  1. select 实现server I/O多路复用通信
  2. C#基础知识点梳理一
  3. JAVA框架Struts2
  4. c# 取 list前100条数据
  5. android sdk 更新用的HOSTS
  6. iOS - 让view触发点击事件
  7. 练习2: Python基本图形绘制 (第2周)
  8. C++ Primer 5th笔记(3)字符串、向量和数组:数组
  9. 打家劫舍系列(dp)
  10. python操作mysql操作步骤