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();

    }

    }
  • 相关阅读:
    PostGIS解压版安装
    gulp监听文件变化,并拷贝到指定目录
    pre在火狐中不换行
    Undefined symbols for architecture i386: "_crc32", referenced from:
    响应式自动化开发流程-Windows 版
    Gulp入门教程
    SVG折线图
    git-版本控制
    log4j
    CSS:描述样式
  • 原文地址:https://www.cnblogs.com/tengri-fighting/p/12758711.html
Copyright © 2011-2022 走看看