锁定的意思是什么--计算机锁定的意思是什么

synchronizedsynchronized的用法锁定静态方法/** * 在静态方法上添加 */ public static synchronized void test1() { }锁定当前类的class对象锁定普通方法/** * 在普通方法上添加 */ public synchronized void test2() { }锁定当前对象锁定class对象/*

synchronized

synchronized的用法

  • 锁定静态方法
/**
 * 在静态方法上添加
 */
public static synchronized void test1() {

}

锁定当前类的class对象

  • 锁定普通方法
/**
 * 在普通方法上添加
 */
public synchronized void test2() {

}

锁定当前对象

  • 锁定class对象
/**
 * 锁定class对象
 */
public static void test3() {
    // 锁定class对象
    synchronized (SynchronizedDemo.class) {

    }
}

锁定指定的class对象

  • 锁定不同对象
SynchronizedDemo synchronizedDemo = new SynchronizedDemo();
/**
 * 锁定普通对象
 */
public void test4() {
    // 锁定class对象
    synchronized (synchronizedDemo) {

    }
}

锁定指定的对象

这就是synchronized关键字的四种用法,synchronized锁的标志保存在对象的对象头中

Lock

public class LockDemo {

    public static void main(String[] args) {
        Lock lock = new ReentrantLock();
        lock(lock);
    }

    public static void lock(Lock lock) {
        lock.lock();
        try {
            System.out.println("执行业务逻辑");
        } finally {
            lock.unlock();
        }
    }
}

lock是基于AQS来实现的,在AQS中维护了一个双向链表,通过这个链表来保存竞争锁的线程,以此来实现竞争锁的资源等待获取锁,当获取锁的线程释放锁的时候,便会唤醒等待的线程去竞争锁。

关键词:
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。
锁定的意思是什么--计算机锁定的意思是什么文档下载: PDF DOC TXT