Постоянная хеш-карта, одновременная JDBM - PullRequest
0 голосов
/ 11 мая 2011

Я протестировал JDBM2 , который действительно является отличным API для сохранения данных непосредственно в древовидной или хэш-карте.На сайте проекта написано, что он не поддерживает одновременный доступ.Поэтому мой вопрос: существуют ли похожие API с открытым исходным кодом для Java, которые поддерживают одновременные операции чтения и записи?

Спасибо

Ответы [ 2 ]

1 голос
/ 11 мая 2011

Я полагаю, что базовая особенность, которую подразумевают вопросы, - это связь между JVM? Если это так, я успешно использовал hazelcast .

См., Например, этот вопрос , который, хотя и отличается, имеет ценную информацию.

0 голосов
/ 11 мая 2011

В Java есть способ обернуть существующую хеш-карту и вернуть синхронизированную карту; однако вам придется написать синхронизацию самостоятельно: Collections # synchronizedMap

Довольно просто расширить HashMap или реализовать интерфейс Map, чтобы обеспечить некоторую синхронизацию на get() и put(), однако итераторы более хитры.

Существует также ConcurrentHashMap , но у него есть некоторые ограничения, в зависимости от того, что вы хотите сделать.

Простой подход заключается в использовании Collections#synchronizedMap и добавлении кода синхронизации самостоятельно.

...