Читал сегодня Concurrency & Performance, встретил такую фразу:
JSE 6.0 adds to the list of features that can reduce contention: spin-waits (adaptive spinning), lock coarsening lock elimination lock elision (with escape analysis), biased locking, altered notify semantics (less lock jamming)
Вот про altered notify() semantics я первый раз слышу. Что это такое, интересно?
Есть подозрение, что это вот что:
ОтветитьУдалить"New in 1.6 (2)
• Notify() moves thread from WaitSet to EntryList
> Previous versions actually woke notifyee
> Notifyee would simply jam on lock held by notifier". Взято из Synchronization in Java SE 6
(HotSpot) . Также можно посмотреть, как это работает в исходниках VM, в файле /src/share/vm/runtime/synchronizer.cpp.
Да, это оно -- только понятнее не стало. Хотелось бы какого-то популярного объяснения.
ОтветитьУдалить//оффтоп: Саша, Янышин -- ты???
Увы, ничего популярного на эту тему не нашел.
ОтветитьУдалитьАга, это я. Прикольный блог у тебя, познавательный. :)
Спасибо, стараюсь :)
ОтветитьУдалить