zoukankan      html  css  js  c++  java
  • java读写锁ReadWriteLock

    package com.java.concurrent;
    
    import java.util.concurrent.locks.ReadWriteLock;
    import java.util.concurrent.locks.ReentrantReadWriteLock;
    
    public class TestReadWriteLock {
    
        public static void main(String[] args) {
            final ReadWriteLockDemo rw2 = new ReadWriteLockDemo();
            new Thread(new Runnable() {
                
                public void run() {
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    rw2.set(20);
                    
                }
            },"Write:").start();
    
            
            new Thread(new Runnable() {
                
                public void run() {
                    while(true)
                    rw2.get();
                }
            },"Read").start();
            
        }
    
    
    }
    
    class ReadWriteLockDemo {
        private int number = 0;
        // 定义一个读写锁
        private ReadWriteLock lock = new ReentrantReadWriteLock();
    
        //
        public void get() {
            //添加读锁
            lock.readLock().lock();
            try {
                System.out.println(Thread.currentThread().getName() + ":" + number);
            } finally {
                lock.readLock().unlock();
            }
        }
    
        // 写数据
        public void set(int number) {
            //创建写锁
            lock.writeLock().lock();
            try{
            System.out.println(Thread.currentThread().getName()+":"+number);
    
            this.number = number;
            }finally{
                lock.writeLock().unlock();
            }
        }
    
    }
  • 相关阅读:
    进阶学习项目实战链接
    Django与数据库操作
    xadmin的使用
    Django 常见的异常
    网站 安全 ---- 常见的 web 攻击
    nodejs--vue
    ECMAScript 6 简介
    Django -- DRF 认证流程
    Django -- 缓存
    Django --- celery异步任务与RabbitMQ模块
  • 原文地址:https://www.cnblogs.com/fliay/p/7681038.html
Copyright © 2011-2022 走看看