Как прочитать текстовый файл utf16 в строку в golang?

может быть проблемой синхронизации потоков?

Да.

Есть ли способ справиться с этим?

Да, убедитесь, что записи сериализованы путем синхронизации на соответствующем мьютексе. Или поочередно, есть только один поток, который фактически выводит в файл, и все остальные потоки просто записывают в очередь текст, который должен быть записан в очередь, из которой извлекается нить записи. (Таким образом, 20 основных потоков не блокируются при вводе-выводе.)

Повторите мьютекс: например, если все они используют один и тот же экземпляр FileWriter (или что-то еще), что я 'fw, то они могут использовать его как мьютекс:

synchronized (fw) {
    fw.write(...);
}

Если каждый из них использует свой собственный FileWriter или что-то еще, найдите что-то еще, мьютекс.

Но опять же, если поток, выполняющий ввод-вывод от имени других, вероятно, также является хорошим способом.

16
задан CL So 4 April 2013 в 13:07
поделиться