У меня есть динамический массив хэш-таблицJava-блокировка элементов внутри массива
Могу ли я использовать синхронизированный для каждого из них отдельно? Как синхронизировать (массив [1]) {код} .., синхронное (массив [2]) {код} ..
Благодаря
У меня есть динамический массив хэш-таблицJava-блокировка элементов внутри массива
Могу ли я использовать синхронизированный для каждого из них отдельно? Как синхронизировать (массив [1]) {код} .., синхронное (массив [2]) {код} ..
Благодаря
Конечно, но это лучше использовать concurrent map Os concurrent skip list для пропускной способности если вы можете.
BTW, если вы предоставляете нам немного контекста, мы можем предложить вам (возможно) лучшую организацию и структуру данных.
Да, я бы поспорил, нет абсолютно никакой причины использовать трясущуюся когда-либо. –
Вы можете, конечно, синхронизировать на объекте в определенном положении в письменном виде массива:
synchronized (arr[x]) {
...
}
Однако, только будьте осторожны, чтобы убедиться, что вы понимаете, является ли это делать то, что вы хотите, чтобы это сделать.
Это заблокирует конкретный объект , на который ссылается arr [x]. Тем не менее, он не будет покупать вам никакой безопасности потоков с точки зрения доступа к самому массиву - другими словами, например:
Я также согласен с akappa - то, что вы делаете, звучит немного необычно, и, возможно, лучше перефразировать ваш вопрос как «какую структуру данных мне нужно, чтобы сделать X», а не предполагать что массив хэшмапов является подходящим с самого начала?
Что вы пытаетесь достичь? Этот вопрос не имеет смысла без какого-либо контекста. – akappa