您的位置:首页 > 编程语言 > Java开发

java ReentrantReadWriteLock 之初步(一)

2014-02-06 10:49 453 查看
private ReentrantReadWriteLock rw = new ReentrantReadWriteLock();

public void read(){
System.out.println("read start");
rw.readLock().lock();
System.out.println("read locked....");
rw.readLock().unlock();
System.out.println("read unlock...");
}
public void write(){
System.out.println("write start....");
rw.writeLock().lock();
System.out.println("write locked...");
rw.writeLock().unlock();
System.out.println("write unlock...");
}
@Test
public void wInw(){//写锁中调用写锁
rw.writeLock().lock();
System.out.println("wInw lock");
write();
rw.writeLock().unlock();
System.out.println("wInw unlock");
}
@Test
public void wInr(){//写锁中调用读锁
rw.writeLock().lock();
System.out.println("wInr lock");
read();
rw.writeLock().unlock();
System.out.println("wInr unlock");
}
@Test
public void rInw(){//读锁中调用写锁
rw.readLock().lock();
System.out.println("rInw lock");
write();
rw.readLock().unlock();
System.out.println("rInw unlock");
}
@Test
public void rInR(){//读锁中调用读锁
rw.readLock().lock();
System.out.println("rInR lock");
read();
rw.readLock().unlock();
System.out.println("rInR unlock");
}

结果:在读锁中调用写锁,会导致死锁,其他情况都可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: