Wie sperrt Reentrantlock ein bestimmtes Objekt?
扔个三星炸死你
扔个三星炸死你 2017-06-12 09:25:57
0
1
823

Wenn ich ein Array-Objekt der Länge 10:

habe
Object[] arr=new Object[10];

Der Zugriff auf jedes Objekt schließt sich gegenseitig aus, der Zugriff zwischen mehreren Objekten kann jedoch gleichzeitig erfolgen.
Dann können Sie mit synchonized Folgendes tun:

synchoronized(arr[i]){ //... }

Ich würde gerne fragen, wie man eine solche Sperre implementiert, wenn man Reentrantlock verwendet?

Hinweis: Muss ich für dieses Nutzungsszenario 10 Lock-Arrays gleichzeitig erstellen?Lock[] lockList=new ReentrantLock[10]

if(lockList[i].trylock())[ // }

Ist das so?

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

Antworte allen (1)
代言

初始化锁:

Lock[] lockList = new ReentrantLock[10]; for (int i = 0; i < 10; i ++) { lockList[i] = new ReentrantLock(); }

需要加锁时:

lockList[i].lock(); try { ... } finally { lockList[i].unlock(); }
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!