今天讲个故事,很好的消化这三个的差别; 通俗易懂这三个的差别:

HashMap:每个隔间都没锁门,有人想上厕所,管理员指给他一个隔间,里面没人的话正常用,里面有人的话把这个人赶出来然后用。

优点,每个人进来不耽误都能用;缺点,每一个上厕所的人都有被中途赶出来的危险。

Hashtable:在卫生间外面安装一个大门,有人想上厕所,问管理员要一个钥匙进门,把门反锁用,用完后出来,把钥匙交换给管理员。在这个人上厕所期间,其他所有人都必须在外面排号。

优点,每个人都能安心上完厕所;缺点,卫生间外面可能已经出了人命。 =_=

ConcurrentHashMap:在卫生间每个隔间安装门锁,有人想上厕所,管理员指给他一个隔间,进来后这个隔间如果没人在用则直接用,如果有人正在用,则排号。在这期间其他人会按规则分到不同的隔间,重复上述行为。

## 优点:每个人都能安心上厕所,外面排队的也被均匀分摊。缺点:。。。