摘要:
java5开始可以显示定义同步锁对象来实现同步,这种机制下,同步锁由对象充当Lock比同步代码块和同步方法更加灵活在实现线程安全的机制中,比较常用的是ReentrantLock(可重入锁)。使用该Lock对象可以显示的加锁,释放锁 ReentrantLock 代码格式如下: 阅读全文
摘要:
使用synchronized关键字来修饰某个方法,该方法被称为同步方法。对于synchronized修饰的实例方法(非static方法),无需显示指定同步监视器,同步方法的同步监视器是this,也就是调用该方法的对象。通过同步方法可以非常方便的实现线程安全的类,线程安全的类具有如下特征: 该类的对象 阅读全文
摘要:
线程安全问题:多线程访问同一数据,容易出现线程安全问题 经典问题:银行取钱,1.用户名密码登陆,2.输入取款金额,3.判断账户余额是否大于取款金额,4.如果大于,取款成功,如果小于,取款失败。 同步代码块:上面Demo中,两个并发线程在修改Account对象,很容易造成异常;为了解决这样的异常,ja 阅读全文