关于synchronized与lock的性能比较
synchronized的性能这么好,究竟是做了哪些优化
synchronized跟ReentrantLock相比,有几点局限性:
加锁的时候不能设置超时。ReentrantLock有提供tryLock方法,可以设置超时时间,如果超过了这个时间并且没有获取到锁,就会放弃,而synchronized却没有这种功能
ReentrantLock可以使用多个Condition,而synchronized却只能有1个
不能中断一个试图获得锁的线程
ReentrantLock可以选择公平锁和非公平锁
ReentrantLock可以获得正在等待线程的个数,计数器等