Является ли FileChannel.position() потокобезопасным?

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

2 ответа

Решение

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

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

В FileChannel Документация, это говорит:

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

Другие вопросы по тегам