2009-05-05 3 views
1

В ConcurrentHashMap JDK используется техника блокировки. Это хорошая идея, чтобы минимизировать накладные расходы на блокировку. Существуют ли какие-либо другие библиотеки или инструменты, которые его используют? Например, использует ли движок базы данных?Область применения блокировочной полосы

Если техника не так полезна в других областях, каково ее ограничение?

ответ

4

Блокировка полосы может быть полезной, если существует способ разбить высокий конфликтный конфликт на несколько замков без ущерба для целостности данных. Если это возможно или нет, подумайте, и это не всегда так. Речь также идет о структуре данных. Поэтому, если мы используем большой массив для реализации хеш-таблицы, использование одной блокировки для всей хэш-таблицы для ее синхронизации приведет к последовательному обращению к структуре данных. Если это то же место в хеш-таблице, то это необходимо, но что, если они обращаются к двум крайностям таблицы.

Существует определенная экономия времени при использовании блокировки. Несколько запусков scenario дают почти половину времени выполнения.

Слишком низкая скорость блокировки - трудно получить состояние структуры данных, на которое влияет чередование. В примере размер таблицы или попытка перечислить/перечислить всю таблицу могут быть громоздкими, поскольку нам нужно приобрести все полосатые блокировки.

Смежные вопросы