04 脏读

对于对象的同步和异步的方法,我们在设计自己的程序的时候,一定要考虑的问题整体。不然就会出现数据不一致的错误。

示例:

/**

 * 业务整体需要完整的synchronized,保证业务的原子性

 * @author Vision_TXG

 *

 */

public class MyThread04 {

private String username ="txgang";

private String password = "123456";

public synchronized void setValue(String username,String password) {

this.username = username;

try {

Thread.sleep(2000);

}catch(Exception e){

e.printStackTrace();

}

this.password = password;

System.out.println("setvalue最终结果:username = " + username +" password  = " + password);

}

/**

 * 该方法如果不加synchronizd,也就是异步操作,即上面setValue()方法没有执行完之前就可以执行该方法,

 * 导致得到的值不准确

 */

public /*synchronized*/ void getValue() {

System.out.println("getValue方法得到:username = " + username + " password = " + password);

}

public static void main(String[] args) throws InterruptedException {

final MyThread04 m = new MyThread04();

Thread t1 = new Thread(new Runnable() {

 

@Override

public void run() {

// TODO Auto-generated method stub

m.setValue("aaaa", "11111");

}

});

t1.start();

Thread.sleep(1000);

m.getValue();

}

}

 

数据库中的四个特性:A(原子性) ,C(一致性),I(隔离性),D(永久性)

四个特性都围绕着一致性而存在的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值