ファイルロック

2606 ワード

ファイルロック     同期アクセスの共有リソースファイルはロックされても良いが、同じファイルを競合する2つのスレッドは、異なる仮想マシン上にあり得る。あるいは、Javaスレッドであり、他のローカルスレッドでも、Javaのアンチエイジングが直接ローカルオペレーティングシステムのロックアップツールにマッピングされているため、他のオペレーティングシステムのプロセスに対してファイルロックが見られます。
package solutions;

import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileLock;
import java.util.concurrent.TimeUnit;

/**
 * Created by Administrator on 2016/3/14.
 */
public class FileLocking {
    public static void main(String[] args) throws IOException,InterruptedException{
        FileOutputStream fos=new FileOutputStream("src/solutions/hu.txt");
        //       ,     lock()        
        /*
        * tryLock()      ,      ,        (                     ), 
        *            。
        *  lock()      ,             ,   lock()     ,   lock()     。
        * */
        FileLock fl=fos.getChannel().tryLock();
        if(fl!=null){
            System.out.println("Locked File");
            TimeUnit.MILLISECONDS.sleep(100);
            fl.release();
            System.out.println("Release Lock");
        }
        fos.close();
    }
}