— Когда одна нить заходит внутрь блока кода, помеченного словом synchronized, то Java-машина тут же блокирует мютекс у объекта, который указан в круглых скобках после слова synchronized. Больше ни одна нить не сможет зайти в этот блок, пока наша нить его не покинет.
synchronized (this) {
    String s = name1; name1 = name2; name2 = s;
}
А если написать так:
synchronized (resultMap) {
    ...some code...
    resultMap.put(fileName, max.getKey());
}
Мьютекс устанавливается у объекта resultMap. Вопрос (возвращаясь к подчеркнутому тексту): могут ли несколько нитей зайти в этот блок synchronized?