乐观锁&悲观锁 | 悲观锁synchronized | |
自旋锁&非自旋锁 | 指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环 | |
公平锁&非公平锁 | 对于多线程竞争是否排队,我们可以将锁分成公平锁和非公平锁 | |
独占锁 与 共享锁 | Java 并发包 (JUC) 提供的加锁模式分为独占锁和共享锁,他们的区别是多线程是否可以共享一把锁,前者不可以后者可以。 | |
可重入锁 | 同一线程多个流程能否重复获取同一把锁,可以将锁分为可重入锁与非可重入锁 | |
读写锁 | 为了提高性能,Java 提供了读写锁,在读的地方使用读锁,在写的地方使用写锁,灵活控制 |