1. 取得メソッド
lock()、tryLock()、tryLock(long time, TimeUnit単位)、lockInterruptibly()はすべてロックの取得に使用されます。
(1) lock() メソッドは最も一般的に使用されるメソッドであり、ロックを取得するために使用されます。ロックが別のスレッドによって取得されている場合は、待機します。
(2) tryLock() メソッドには戻り値があり、ロックの取得を試行するために使用されることを意味します。取得が成功すると、true が返されます。取得が失敗した場合 (つまり、別のスレッド取得によってロックが取得された場合)、 false が返されます。これは、このメソッドが何があってもすぐに戻ることを意味します。ロックができないときにそこで待つ必要はありません。
(3) tryLock(long time, TimeUnit単位) メソッドは tryLock() メソッドに似ていますが、唯一の違いは、このメソッドは、処理できない場合に 一定時間待機することです。 get the lock 、制限時間内にロックを取得できない場合は false が返されます。ロックが最初に取得された場合、または待機中に取得された場合は true を返します。
(4) lockInterruptibly() メソッドは特殊で、このメソッドでロックを取得する際、スレッドがロックの取得を待機している場合、スレッドは割り込みに応答できます。スレッドの待機状態。 つまり、2 つのスレッドが同時に lock.lockInterruptibly() を通じてロックを取得したい場合、この時点でスレッド A がロックを取得し、スレッド B が待機しているだけであれば、threadB.interrupt が呼び出されます。 () メソッドは、スレッド B の待機中のプロセスに割り込むことができます。
2. 例
trylock を例に挙げます。rree
以上がJavaでロックを取得するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。