zoukankan      html  css  js  c++  java
  • JUC之---读写锁

    1、ReadWriteLock:读操作和写操作线程一起运行,提高相同操作的效率。

    2、测试代码:

      

    public class T_ReadWriteLock {

    static Lock lock = new ReentrantLock();

    static ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
    static Lock readLock = readWriteLock.readLock();
    static Lock writeLock = readWriteLock.writeLock();


    public static void read(Lock lock){

    try {
    lock.lock();
    //读需要1秒
    Thread.sleep(1000);
    System.out.println("读完毕!");

    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    lock.unlock();
    }

    }

    public static void write(Lock lock) {
    try {
    lock.lock();
    //写需要2秒
    Thread.sleep(2000);
    System.out.println("写完毕!");
    }catch (Exception e) {
    e.printStackTrace();
    } finally {
    lock.unlock();
    }
    }


    public static void main(String[] args) {

    // Runnable read = ()->read(lock); //使用正常锁
    // Runnable write = ()->write(lock);

    Runnable read = ()->read(readLock);
    Runnable write = ()->write(writeLock);

    for (int i=0; i<18; i++) new Thread(read).start();
    for (int i=0; i<2; i++) new Thread(write).start();

    }

    }
  • 相关阅读:
    访问者模式
    中介者模式
    策略模式
    迭代器模式
    责任链模式
    contentProvider模板
    android studio常用快捷键(不断补充)
    jqgrid表格列动态加载的实现
    Android View.onMeasure方法的理解(转载)
    activity的生命周期
  • 原文地址:https://www.cnblogs.com/tengri-fighting/p/12758711.html
Copyright © 2011-2022 走看看