воскресенье, 4 октября 2009 г.

Spin-wait in HotSpot JVM

Тут Санкт-Петербургская группа тестирования JVM рассказывает про реализацию активного ожидания в Sun HotSpot JVM.
"... HotSpot тоже использует spin locks. В коде есть множество настраиваемых параметров. Перечислим эвристики, которые применяет Hotspot по умолчанию:
  1. Количество нитей, крутящихся в ожидании одной блокировки ограничено количеством процессоров (-XX:SyncKnobs=MaxSpinners=n)
  2. Если ожидаемая блокировка, захвачена нитью, которая сейчас не выполняется на процессоре, то крутиться не нужно (OState=0|1)
  3. Если блокировка поменяла хозяина, пока нить крутилась, то дальше крутиться не стоит. То же, если мы заметили освободившуюся блокировку, но ее захватили перед нашим CAS. ..."

Комментариев нет:

Отправить комментарий