对Hashtable、HashMap、ConcurrentHashMap的理解
Hashtable 是线程安全的对象,但是已经不使用了
内部是一个数组,一层一层都会上锁,所以会阻塞。
HashMap 线程不安全
如果多个线程同时操作一个HashMap,会出现不安全的情况,甚至死锁。
ConcurrentHashMap 兼顾两者性能和安全
并发包下的ConcurrentHashMap分段锁
每一段都可以同时 put get (先通过key 找到hash然后找到所在段,在找到段内位置)
总结
1.如果不是多个线程访问同一个资源,优先选择使用hashMap ,局部变量,而不是全局变量,不用去考虑线程安全。
2.是全局变量,多个线程访问,会选择ConcurrentHashMap