当一个线程持有某个对象的monitor而另一个线程又尝试获取这个monitor时,会出现锁的contention。
第二个问题你就让面试官先给你定义一下什么叫效率?
单位时间内
执行有效的代码的cpu time/总cpu time?1、减小同步块的大小。2、使用immutable对象。3、使用Unsafe包当中的CAS操作和无锁的数据结构。
问清楚面试官的意图比较重要。