码迷,mamicode.com
首页 > 其他好文 > 详细

锁机制的复习

时间:2020-02-18 20:16:19      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:rac   virtual   monit   实现   锁对象   null对象   tor   syn   两种   

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();
  }

 

锁机制的复习

标签:rac   virtual   monit   实现   锁对象   null对象   tor   syn   两种   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!