Synchronized和Lock

参考文章:
详解synchronized与Lock的区别与使用

锁的种类

  1. 可重入锁

  2. 可中断锁

  3. 读写锁

  4. 公平锁

Synchronized 和 local 的区别

类别 synchronized Lock
存在层次 Java关键字,JVM层面 是一个类
锁的释放 1. 以获得锁的线程执行万同步代码,释放锁。
2. 线程执行发生异常,jvm会让线程释放锁。
在finally中必须释放锁,否则会造成死锁
锁的获取 如果A线程获得锁,B线程等待,如果A线程阻塞,那B线程就会一直等待。 分情况而定,线程可以不用一直等待。
锁状态 无法判断 可以判断
锁类型 可重入、不可中断、非公平锁 可重入、可判断、可 公平可不公平
性能 少量同步 大量同步

你可能感兴趣的:(多线程)