может быть проблемой синхронизации потоков?
blockquote>Да.
Есть ли способ справиться с этим?
blockquote>Да, убедитесь, что записи сериализованы путем синхронизации на соответствующем мьютексе. Или поочередно, есть только один поток, который фактически выводит в файл, и все остальные потоки просто записывают в очередь текст, который должен быть записан в очередь, из которой извлекается нить записи. (Таким образом, 20 основных потоков не блокируются при вводе-выводе.)
Повторите мьютекс: например, если все они используют один и тот же экземпляр
FileWriter
(или что-то еще), что я 'fw
, то они могут использовать его как мьютекс:synchronized (fw) { fw.write(...); }
Если каждый из них использует свой собственный
FileWriter
или что-то еще, найдите что-то еще, мьютекс.Но опять же, если поток, выполняющий ввод-вывод от имени других, вероятно, также является хорошим способом.