package com.hqyg.disjob.common.util; import java.util.Collection; import java.util.Set; import java.util.TreeMap; import java.util.concurrent.locks.ReentrantLock; public class ThreadSafeTreeMap<K, V> extends TreeMap<K, V>{ /** * */ private static final long serialVersionUID = 1L; private ReentrantLock lock = new ReentrantLock(); @Override public V put(K key, V value) { lock.lock(); try{ return super.put(key, value); }finally{ lock.unlock(); } } @Override public V get(Object key) { lock.lock(); try{ return super.get(key); }finally{ lock.unlock(); } } @Override public Set<java.util.Map.Entry<K, V>> entrySet() { lock.lock(); try{ return super.entrySet(); }finally{ lock.unlock(); } } @Override public Collection<V> values() { lock.lock(); try{ return super.values(); }finally{ lock.unlock(); } } @Override public Set<K> keySet() { lock.lock(); try{ return super.keySet(); }finally{ lock.unlock(); } } @Override public V remove(Object key) { lock.lock(); try{ return super.remove(key); }finally{ lock.unlock(); } } }