读取数据时,position 会往后移动。位置 position 和大小 size 不需要严格与文件保持一致,position 和 size 均可以超过文件的大小范围。shared 参数指定是排他的还是共享的。由于 Java 的文件锁直接映射为操作系统的文件锁实现,因此获取文件锁时代表的是整个虚拟机,而非当前线程。与 lock() 相比,tryLock() 是非阻塞的,无论是否能够获取到锁,它都会立即返回。若 tryLock() 请求锁定的区域已经被操作系统内的其它的进程锁住了,则返回 null;而 lock() 会阻塞,直到获取到了锁、通道被关闭或者线程被中断为止。transferFrom 或者 transferTo 在调用之后并不会改变 position 的位置。
暂无评论