Является ли FileChannel.position () потокобезопасным? - PullRequest
0 голосов
/ 18 ноября 2018

Безопасно ли писать из разных потоков в один файл, используя FileChannel.position()? Это необходимо для многочастной загрузки. Каждый поток запишет на свою позицию в файле, то есть позиции потока не будут пересекаться.

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Несмотря на то, что отдельный параметр является поточно-ориентированным, он не является локальным для потока, и его изменение будет видно всем потокам.

Самый простой вариант - создать FileChannel для каждого потока, который исключает любые взаимодействия, если вы не пишете вфайл, в котором эти изменения можно увидеть.

0 голосов
/ 18 ноября 2018

В документации FileChannel говорится:

Файловые каналы безопасны для использования несколькими параллельными потоками.

...