lock.lockInterruptibly()
Posted top啦它
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lock.lockInterruptibly()相关的知识,希望对你有一定的参考价值。
lock.lockInterruptibly();当与它争抢锁的线程释放锁或者与它争抢锁的线程中断后,他会获得锁。
package fangfa;
import java.util.Vector;
import java.util.concurrent.locks.ReentrantLock;
public class Son
public static void main(String[] args) throws InterruptedException
ReentrantLock lock = new ReentrantLock();
Jasi jasi = new Jasi(lock);
Jasi1 jasi1 = new Jasi1(lock);
Thread thread1 = new Thread(jasi);
Thread thread2 = new Thread(jasi1);
thread1.start();
thread2.start();
Thread.sleep(1000);
thread1.interrupt();//中断thread1
class Jasi implements Runnable
private final ReentrantLock lock;
public Jasi(ReentrantLock lock)
this.lock = lock;
@Override
public void run()
try
lock.lockInterruptibly();
System.out.println(Thread.currentThread().getName()+"获得了锁");
catch (InterruptedException e)
e.printStackTrace();
finally
lock.unlock();
System.out.println(Thread.currentThread().getName()+"释放了锁");
class Jasi1 implements Runnable
private final ReentrantLock lock;
public Jasi1(ReentrantLock lock)
this.lock = lock;
@Override
public void run()
try
lock.lock();
Thread.sleep(5000);
System.out.println(Thread.currentThread().getName()+"获得了锁");
catch (InterruptedException e)
e.printStackTrace();
finally
lock.unlock();
System.out.println(Thread.currentThread().getName()+"释放了锁");
以上是关于lock.lockInterruptibly()的主要内容,如果未能解决你的问题,请参考以下文章