头疼的并发问题2
有2个ConcurrentHashMap, 虽然对于单个map操作是线程安全的。
但是我们的业务一般不会这么简单,例如:方法A会移除map其中一个元素,方法B又会不断的循环读取map中的值
?
这个时候显然2个map除了业务逻辑有关,实际上没任何关系。当然也不会保证他们二者的线程安全。
?
那么线程安全问题就凸显出来了。可能有人一看就觉得在业务方法上面加上同步关键字之类的方法解决线程安全问题。但是有2个问题无法解决:1、效率。2、代码量。
毕竟涉及到的业务较多。
?
我对这种问题目前的做法是测试,然后在循环处加上一层判断。只能算是缓解在高并发下生产的问题。当然,在一般无压力情况下是可以过关的。