问题描述
我正在与构建一个多图
public static Multimap<Timestampeddeviceid,ParsedPayload> multimap = Multimaps.synchronizedMultimap(
TreeMultimap.create(new Comparator<Timestampeddeviceid>() {
@Override
public int compare(Timestampeddeviceid o1,Timestampeddeviceid o2) {
return o1.compareto(o2);
}
},new Comparator<ParsedPayload>() {
@Override
public int compare(ParsedPayload o1,ParsedPayload o2) {
return o1.getCurrentPkgNum()-o2.getCurrentPkgNum();
}
}));
在线程-a中, 那么我想用
删除线程b中的指定键值Common.multimap.removeAll(deviceid);
Exception in thread "Thread-1" java.util.ConcurrentModificationException
at java.base/java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1208)
at java.base/java.util.TreeMap$KeyIterator.next(TreeMap.java:1262)
at com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.next(AbstractMapBasedMultimap.java:463)
at com.aier.waterserver.bootstrap.DeviceInfoInsertionTask.lambda$run$0(DeviceInfoInsertionTask.java:42)
at java.base/java.lang.Thread.run(Thread.java:834)
现在我很困惑,为什么即使使用了同步,也会发生此异常。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)