问题描述:在开发项目过程中,使用了hashMap作为临界资源,为了防止多线程异常,我还在读写hashMap处增加了锁的控制,但是程序还是出现了异常。让我百思不得其解,
在查找问题过程中,突然想起hashMap是非线程安全的。
解决办法:
在网上搜索到两种解决办法:
1、使用 Collections.synchronizedMap(Map)。允许需要同步的用户可以拥有同步,而不需要同步的用户则不必为同步付出代价。
2、ConcurrentHashMap ,比起synchronizedMap,它提供了更高的灵活性。同时进行的读和写操作都可以并发地执行