JAVA JUC 读写锁

Posted 行尸走肉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA JUC 读写锁相关的知识,希望对你有一定的参考价值。

 

 

 

应用示例

class Demo{
    int number;
    ReentrantReadWriteLock lock = new ReentrantReadWriteLock();

    public void read(){
        //读锁
        lock.readLock().lock();
        try {
            System.out.println(Thread.currentThread().getName()+" read "+number);
        } finally {
            lock.readLock().unlock();
        }

    }
    public void write(){
        lock.writeLock().lock();
        try {
            number++;
            System.out.println(Thread.currentThread().getName()+"add number");
        } finally {
            lock.writeLock().unlock();
        }
    }

}
public class writeReadLockTest {
    public static void main(String[] args) {
        Demo d = new Demo();
        for(int i =0;i<20;i++)
            new Thread(new Runnable() {
                @Override
                public void run() {
                    d.write();
                }
            },"writeThread "+i+" ").start();
        for(int i =0;i<20;i++)
            new Thread(new Runnable() {
                @Override
                public void run() {
                    d.read();
                }
            },"redaThread "+i+" ").start();

    }
}
View Code

 

以上是关于JAVA JUC 读写锁的主要内容,如果未能解决你的问题,请参考以下文章

JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段

JUC中的读写锁(ReentrantReadWriteLock)

JUC高级多线程_07:读写锁与阻塞队列的具体介绍与使用

JUC并发编程 共享模式之工具 JUC 读写锁 ReentrantReadWriteLock -- ReentrantReadWriteLock(不可重入锁)使用 & 注意事项

高效并发JUC锁-永恒砖石

JUC中的读写锁(ReentrantReadWriteLock)