Heim > Java > javaLernprogramm > Hauptteil

Welche Methoden zur Sperrenerfassung gibt es in Java?

王林
Freigeben: 2023-05-19 13:13:06
nach vorne
2002 Leute haben es durchsucht

1. Die Erfassungsmethoden

lock(), tryLock(), tryLock(long time, TimeUnit unit) und lockInterruptably() werden alle zum Erfassen von Sperren verwendet.

(1) Die lock()-Methode ist die am häufigsten verwendete Methode, die zum „Erhalten von Sperren“ verwendet wird. Wenn die Sperre von einem anderen Thread erworben wurde, warten Sie. (2) Die tryLock()-Methode hat einen Rückgabewert, was bedeutet, dass sie verwendet wird, um

zu versuchen, die Sperre zu erhalten. Wenn die Erfassung erfolgreich ist, gibt sie „true“ zurück von einem anderen Thread erfasst wurde), gibt sie false zurück. Mit anderen Worten, diese Methode wird in jedem Fall sofort zurückgegeben. Sie werden nicht dort warten, wenn Sie das Schloss nicht bekommen.

(3) Die tryLock(long time, TimeUnit-Einheit)-Methode ähnelt der tryLock()-Methode, der einzige Unterschied besteht darin, dass diese Methode eine bestimmte Zeit wartet

, wenn sie die Sperre nicht erhalten kann immer noch innerhalb des Zeitlimits gesperrt. Wenn die Sperre nicht erhalten werden kann, wird false zurückgegeben. Gibt „true“ zurück, wenn die Sperre ursprünglich oder während der Wartezeit erhalten wurde.

(4) Die Methode lockInterruptably () ist etwas Besonderes. Wenn der Thread über diese Methode auf den Erhalt der Sperre wartet, kann er auf den Interrupt reagieren, dh auf den Wartezustand des Interrupt-Threads. Mit anderen Worten, wenn zwei Threads gleichzeitig eine Sperre über lock.lockInterruptably() erwerben möchten und Thread A zu diesem Zeitpunkt die Sperre erhält und Thread B nur wartet, wird threadB.interrupt() aufgerufen Thread B. Die Methode kann den Warteprozess von Thread B unterbrechen.

2. Beispiel

Nehmen Sie Trylock als Beispiel.

Lock lock = ...;
if(lock.tryLock()) {
     try{
         //处理任务
     }catch(Exception ex){
         
     }finally{
         lock.unlock();   //释放锁
     }
}else {
    //如果不能获取锁,则直接做其他事情
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWelche Methoden zur Sperrenerfassung gibt es in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage