FileChannel.position() 线程安全吗?

Is FileChannel.position() thread safe?

使用 FileChannel.position() 从不同线程写入一个文件是否安全?这是分段下载所必需的。每个线程将写入其在文件中的位置,即线程的位置不会相交。

FileChannel Documentation 中,它说:

File channels are safe for use by multiple concurrent threads.

虽然单个选项是线程安全的,但它不是线程本地的,更改它对所有线程都是可见的。

最简单的选择是为每个线程创建一个 FileChannel,这样可以避免任何交互,除非您写入文件,在这种情况下可以看到这些更改。