Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.task.task28.task2811;
- import java.util.Map;
- import java.util.concurrent.locks.Lock;
- import java.util.concurrent.locks.ReadWriteLock;
- import java.util.concurrent.locks.ReentrantLock;
- import java.util.concurrent.locks.ReentrantReadWriteLock;
- public class ReadWriteMap<K, V> {
- private final Map<K, V> map;
- private final ReadWriteLock lock = new ReentrantReadWriteLock();
- private final Lock readLock=lock.readLock () ;
- private final Lock writeLock=lock.writeLock ();
- public ReadWriteMap(Map<K, V> map) {
- this.map = map;
- }
- public V put(K key, V value) {
- try {
- writeLock.lock ();
- return map.put(key, value);
- } finally {
- writeLock.unlock ();
- }
- }
- public V get(K key) {
- try { readLock.lock ();
- return map.get(key);
- } finally {
- readLock.unlock ();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement