如何使java Matcher线程安全
private Pattern pattern=Pattern.compile("(%([^%]*)%)");
public void infer(EnvProper p,EnvProper p2){
Matcher matcher=pattern.matcher(p.value);
if(matcher.find()){
update(p); //会调用另一个线程
} else{
}
}
只要把update(p) 放入if语句中,包括else,就会出错。
Caused by: java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
Matcher 是一个非线程安全类,如何解决使matcher线程安全。