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

    package com.gf.demo11;
    
    import java.util.concurrent.locks.ReadWriteLock;
    import java.util.concurrent.locks.ReentrantReadWriteLock;
    
    /**
     * 1. ReadWriteLock : 读写锁
     * 
     * 写写/读写 互斥
     * 读读 不互斥
     *
     */
    public class TestReadWriteLock {
    	
    	public static void main(String[] args) {
    		ReadWriteLockDemo rw = new ReadWriteLockDemo();
    		
    		new Thread(new Runnable() {
    			
    			@Override
    			public void run() {
    				rw.set((int)(Math.random()*101));
    			}
    		},"Write").start();
    		
    		for (int i = 0; i < 10; i++) {
    			new Thread(new Runnable() {
    				
    				@Override
    				public void run() {
    					rw.get();
    				}
    			}).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();
    		}
    	}
    	
    }
    

    关注我的公众号,精彩内容不能错过

  • 相关阅读:
    A4988和CNC SHIELD使用方法 步进电机
    MTP 写字机器
    s*s*r备用
    VHDL 例程
    ESP8266 使用
    世界四大航海家
    第六周学习进度总结
    关于tensorflow版本报错问题的解决办法
    第五周学习进度总结
    机器学习对文本的聚类KMeans
  • 原文地址:https://www.cnblogs.com/huanchupkblog/p/8037961.html
Copyright © 2011-2022 走看看