zoukankan      html  css  js  c++  java
  • Java ReadWriteLock 接口

    使用示例

    public class Test {
        private ReadWriteLock rwLock = new ReentrantReadWriteLock();
        //写锁
        public void write() {
            rwLock.writeLock().lock();
            try {
                System.out.println(Thread.currentThread().getName()+":写开始!");
                TimeUnit.SECONDS.sleep(1);
                System.out.println(Thread.currentThread().getName()+":写结束!");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                rwLock.writeLock().unlock();
            }
        }
        //读锁
        public void read() {
            rwLock.readLock().lock();
            try {
                System.out.println(Thread.currentThread().getName()+":读开始!");
                TimeUnit.SECONDS.sleep(1);
                System.out.println(Thread.currentThread().getName()+":读结束!");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                rwLock.readLock().unlock();
            }
        }
    
        public static void main(String[] args) throws Exception{
            Test test = new Test();
            for(int i=1; i<=3; i++) {
               new Thread(() -> {
                   test.write();
               }, "Thread-"+i).start();
            }
            for(int i=4; i<=6; i++) {
                new Thread(() -> {
                    test.read();
                }, "Thread-"+i).start();
            }
        }
    }
    
    结果:
    Thread-1:写开始!
    Thread-1:写结束!
    Thread-2:写开始!
    Thread-2:写结束!
    Thread-3:写开始!
    Thread-3:写结束!
    Thread-4:读开始!
    Thread-5:读开始!
    Thread-6:读开始!
    Thread-4:读结束!
    Thread-5:读结束!
    Thread-6:读结束!
    
  • 相关阅读:
    python计算机基础
    计算机基础知识
    ftok函数
    可重入函数与不可重入函数
    Redis学习资料整理
    小记6月18
    libxml2简单的生成、解析操作
    切换日志是否更新检查点?
    第五课 数据备份恢复实验
    第四课 Grid Control实验 GC Agent安装(第一台机器部署) 及卸载
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/15324477.html
Copyright © 2011-2022 走看看