1.读(共享)写(独占)锁
JUC提供了一个读写锁,ReentrantReadWriteLock
使用该锁,意味着:读时各线程可以共享资源类,写时加锁,并且在写时,不允许读操作
2.自旋锁
典型案例是CAS,通过循环的方式,不断尝试去拿锁
3.重入锁(递归锁)
意味着在递归方法中,拿到外部函数的锁,即拿到内部函数的锁
4.公平锁与非公平锁
公平锁:按请求顺序来执行,先到先得
非公平锁:不按请求顺序来执行,优点:吞吐量大
1.读(共享)写(独占)锁
JUC提供了一个读写锁,ReentrantReadWriteLock
使用该锁,意味着:读时各线程可以共享资源类,写时加锁,并且在写时,不允许读操作
2.自旋锁
典型案例是CAS,通过循环的方式,不断尝试去拿锁
3.重入锁(递归锁)
意味着在递归方法中,拿到外部函数的锁,即拿到内部函数的锁
4.公平锁与非公平锁
公平锁:按请求顺序来执行,先到先得
非公平锁:不按请求顺序来执行,优点:吞吐量大