zoukankan      html  css  js  c++  java
  • Java8-Lock-No.03

    import java.util.HashMap;
    import java.util.Map;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.locks.ReadWriteLock;
    import java.util.concurrent.locks.ReentrantReadWriteLock;
    
    public class Lock3 {
    
        public static void main(String[] args) {
            ExecutorService executor = Executors.newFixedThreadPool(2);
    
            Map<String, String> map = new HashMap<>();
    
            ReadWriteLock lock = new ReentrantReadWriteLock();
    
            executor.submit(() -> {
                lock.writeLock().lock();
                try {
                    ConcurrentUtils.sleep(1);
                    map.put("foo", "bar");
                } finally {
                    lock.writeLock().unlock();
                }
            });
    
            Runnable readTask = () -> {
                lock.readLock().lock();
                try {
                    System.out.println(map.get("foo"));
                    ConcurrentUtils.sleep(1);
                } finally {
                    lock.readLock().unlock();
                }
            };
            executor.submit(readTask);
            executor.submit(readTask);
    
            ConcurrentUtils.stop(executor);
        }
    
    }
    
  • 相关阅读:
    注意
    被虐的很惨
    在cmd中可以运行java,但是不能用javac
    Linux常用命令
    安装JDK和eclipse
    重装win7
    小希的迷宫
    并查集——The Suspects
    BFS宽度优先搜索
    括号匹配
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10210922.html
Copyright © 2011-2022 走看看