Comment reentrantlock verrouille-t-il un objet spécifique ?
扔个三星炸死你
扔个三星炸死你 2017-06-12 09:25:57
0
1
827

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 ?

扔个三星炸死你
扔个三星炸死你

répondre à tous (1)
代言

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(); }
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!