synchronized和Lock的不同之处简介说明
转自:
http://www.java265.com/JavaMianJing/202204/16506887823048.html
下文笔者讲述synchronized和Lock的区别,如下所示
synchronized和Lock的区别: 语义不同 synchronized是java内置关键字 Lock是java中的一个类 可操作性不同 synchronized无法检测是否获取锁状态 Lock可判断是否获取锁 操作方式不同 synchronized自动释放锁 Lock需程序员手动释放锁 等待锁的方式不同 用synchronized关键字的两个线程1和线程2 当前线程1获得锁,线程2线程等待 如果线程1阻塞,线程2则会一直等待下去 用Lock锁就不一定会等待下去,如果尝试获取不到锁,线程可以不用一直等待就结束了; 锁的可操作性不同 synchronized的锁可重入、不可中断、非公平 Lock锁可重入、可判断、可公平(两者皆可) 应用场景不同 synchronized适用锁少量代码 Lock适用大量代码块的锁