Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. package com.javarush.task.task28.task2811;
  2.  
  3. import java.util.Map;
  4. import java.util.concurrent.locks.Lock;
  5. import java.util.concurrent.locks.ReadWriteLock;
  6. import java.util.concurrent.locks.ReentrantLock;
  7. import java.util.concurrent.locks.ReentrantReadWriteLock;
  8.  
  9. public class ReadWriteMap<K, V> {
  10. private final Map<K, V> map;
  11. private final ReadWriteLock lock = new ReentrantReadWriteLock();
  12. private final Lock readLock=lock.readLock () ;
  13. private final Lock writeLock=lock.writeLock ();
  14.  
  15. public ReadWriteMap(Map<K, V> map) {
  16. this.map = map;
  17. }
  18.  
  19. public V put(K key, V value) {
  20. try {
  21. writeLock.lock ();
  22. return map.put(key, value);
  23. } finally {
  24. writeLock.unlock ();
  25. }
  26. }
  27.  
  28. public V get(K key) {
  29. try { readLock.lock ();
  30. return map.get(key);
  31. } finally {
  32. readLock.unlock ();
  33. }
  34. }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement