首页 > 其他 > 详细

锁机制的复习

时间:2020-02-18 20:46:40      阅读:48      评论:0      收藏:0      [点我收藏+]

1.为什么使用锁:

解决并发操作数据引起脏读,数据不一致的情况;

锁对象:java中任何非null对象;

2.实现方法:

有两种方式:synchronized关键字和并发包中的锁类

// (1):加静态方法上面,表示会监视这个类对象
public static synchronized void staticFunc() {
    //dosomething
}

//(2):加实例方法上面,表示监视当前这个实例对象,我们常说的this
public synchronized void virtualFunc() {
    //dosomething
}

public void monitorThis() {
    //(3):加代码块上面,括号里面传入的是需要监视的对象,这里是this
    synchronized (this){
    }
}

private Object lock = new Object();
public void monitorObject() {
    //(4):自己new了一个lock对象,然后监视lock对象
    synchronized (lock) {
    }
}
private ReentrantLock lock = new ReentrantLock();
 public void testLock() {
        // 获取锁
        lock.lock();
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("test ReentrantLock ");
        // 释放锁
        lock.unlock();
  }

 

锁机制的复习

原文:https://www.cnblogs.com/yunianzeng/p/12327641.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!