Why not just use a ConcurrentHashMap?