在Java 1.7中哪个更贵 - java.util.concurrent.locks.ReentrantLock或同步块?

mar*_*hon 8 java concurrency

锁定的特殊功能,哪一个,如果哪一个,更昂贵?我在这方面找不到任何基准.

对于不需要特殊功能的情况,Lock有什么优势吗?

谢谢.

mar*_*hon 3

今天下午一位同事写了一个巧妙的测试,发现ReentrantLock比synchronized快两倍多(超过500个线程执行60,000次迭代),降级更慢,并且GC影响更小。

在 1.6 和 1.7 jvm 中。(在1.5中,synchronized的表现要差得多)

似乎同步对于低争用区域来说很好,但是 Lock 对于高争用区域来说是不受欢迎的。