JAXP-классы, такие как Transformer, являются интерфейсами и имеют несколько реализаций (два наиболее широко используемых в наши дни - Xalan и Saxon).Фактический эффект нарушения правил многопоточности будет зависеть от того, какой процессор вы используете;но в обоих случаях они будут довольно непредсказуемыми.Transformer, скорее всего, будет содержать текущее состояние переменных и динамический контекст выполнения, поэтому вам не нужно, чтобы два преобразования записывали поверх переменных друг друга.
Чтобы избежать затрат на перекомпиляцию таблицы стилей для каждого использования, вам необходимокэшировать объект Templates, а не объект Transformer.Теоретически вы можете последовательно использовать Transformer для последовательного выполнения нескольких преобразований в одном потоке, но нет никакого смысла: просто создайте новый Transformer (из кэшированных шаблонов) для каждого нового преобразования.
Еще одна вещь, которую нужноизвестно, что DOM не поддерживает потоки даже в режиме только для чтения.Не допускайте одновременного доступа двух преобразований к одному и тому же дереву DOM.Если вам нужно совместно использовать исходный документ между несколькими преобразованиями, лучший способ сделать это зависит от того, используете ли вы Xalan или Saxon.