java锁
锁的分类:公平锁、非公平锁,独占锁、共享锁,可重入锁,悲观锁、乐观锁
公平锁:
ReentrantLock(boolean fair),设置fair为true,即可得到一个公平锁,会按照线程请求锁的先后顺序获的锁,采用先进先出的队列实现
非公平锁:
ReentrantLock(boolean fair),设置fair为false,或调用默认构造函数ReentrantLock(),即可得到一个非公平锁,非公平锁在吞入量上会优于公平锁,一个锁释放在另一个请求时,有可能另一个线程就已抢先获得锁并执行完成,提高了线程任务的处理速度
synchronized也是非公平锁
独占锁:
同一时刻只能由一个线程持有锁,如synchronized、Reentrantlock
共享锁:
可以被多个线程同时持有,如读读不互斥,但读写、写写互斥 ReentrantReadWriteLock.ReadLock,
lock.readLock().lock();
....
lock.readLock().unlock();
可重入锁:
Reentran
java锁最先出现在Python成神之路。
共有 0 条评论