Техника, называемая Biased Locking была добавлена в Java 6 и состоит в том, что для несовревновательных повторных вызовов synchronized{} обходится очень дешево. Кажется, вот это - "Eliminating Synchronization-Related Atomic Operations with Biased Locking and Bulk Rebiasing" ключевая статья.
P.S. Взято отсюда - "Java SE 6 Performance White Paper".
P.P.S. Во многом благодаря biased locking (при использовании монитора только одним потоком не используется мьютекс операционной системы, а !максимум! одна атомарная инструкция) synchronized в яве может работать быстрее мьютекса операционной системы - "...the synchronization primitives in modern JVMs provide latency and throughput performance that is typically better than that of the native pthreads_mutex constructs..."
понедельник, 7 декабря 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
т.е. в j2se 6-ом synchonized будет работать по тому же принципу что и в java.util.concurrent ?
ОтветитьУдалитьт.е. через Unsafe.park()/unpark() .. ?
ОтветитьУдалить