import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.util.Date;
/**
* FileLocke是文件锁,进程锁,控制不同程序(JVM)对同一文件的并发访问
* FileLock是java 1.4 版本后出现的一个类,它可以通过对一个可写文件(w)加锁,
* 保证同时只有一个进程可以拿到文件的锁,这个进程从而可以对文件做访问;
* 而其它拿不到锁的进程要么选择被挂起等待,要么选择去做一些其它的事情,
* 这样的机制保证了众进程可以顺序访问该文件。
* 也可以看出,能够利用文件锁的这种性质,在一些场景下,虽然我们不需要操作某个文件,
* 但也可以通过 FileLock 来进行并发控制,保证进程的顺序执行,避免数据错误。
* ---用于进程间并发
* Locks are associated with files, not channels. Use locks to coordinate
* with external processes, not between threads in the same JVM.
* ---概念
* 共享锁:共享读操作,但只能一个写