Maison > Questions et réponses > le corps du texte
Si j'ai un objet tableau de longueur 10 :
Object[] arr=new Object[10];
L'accès à chaque objet s'exclut mutuellement, mais l'accès entre plusieurs objets peut être simultané.
Ensuite, en utilisant synchronisé, vous pouvez faire ceci :
synchoronized(arr[i]){
//...
}
Je voudrais demander comment implémenter un tel verrouillage si vous utilisez le verrouillage réentrant ?
Remarque : Dois-je créer 10 tableaux de verrouillage en même temps pour ce scénario d'utilisation ? Lock[] lockList=new ReentrantLock[10]
if(lockList[i].trylock())[
//
}
Est-ce le cas ?
代言2017-06-12 09:27:57
Verrouillage d'initialisation :
Lock[] lockList = new ReentrantLock[10];
for (int i = 0; i < 10; i ++) {
lockList[i] = new ReentrantLock();
}
Lorsque le verrouillage est requis :
lockList[i].lock();
try {
...
} finally {
lockList[i].unlock();
}