欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java對父類代碼加鎖,java中鎖的概念

java中文件加鎖機制是怎么實現(xiàn)的。

Java中文件加鎖機制如下:

邱縣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站

在對文件操作過程中,有時候需要對文件進行加鎖操作,防止其他線程訪問該文件。對文件的加鎖方法有兩種:

第一種方法:使用RandomAccessFile類操作文件。

在java.io.RandomAccessFile類的open方法,提供了參數(shù)實現(xiàn)獨占的方式打開文件:

RandomAccessFile raf = new RandomAccessFile(file, "rws");

其中的“rws”參數(shù),rw代表讀取和寫入,s代表了同步方式,也就是同步鎖。這種方式打開的文件,就是獨占方式的。

第二種方法:使用sun.nio.FileChannel對文件進行加鎖。

代碼:

RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");

FileChannel fc = raf.getChannel();

FileLock fl = fc.tryLock();

if(fl.isValid())

System.out.println("You have got the file lock.");

以上是通過RandomAccessFile來獲得文件鎖的,方法如下:

代碼:

FileOutputStream fos = new FileOutputStream("file.txt");

FileChannel fc = fos.getChannel(); //獲取FileChannel對象

FileLock fl = fc.tryLock(); //or fc.lock();

if(null != fl)

System.out.println("You have got file lock.");

//TODO write content to file

//TODO write end, should release this lock

fl.release(); //釋放文件鎖

fos.close; //關(guān)閉文件寫操作

如果在讀文件操作的時候,對文件進行加鎖,操作過程如下:

FileChannel也可以從FileInputStream中直接獲得,但是這種直接獲得FileChannel的對象直接去操作FileLock會報異常NonWritableChannelException,需要自己去實現(xiàn)getChannel方法,代碼如下:

private static FileChannel getChannel(FileInputStream fin, FileDescriptor fd) {

FileChannel channel = null;

synchronized(fin){

channel = FileChannelImpl.open(fd, true, true, fin);

return channel;

}

}

其實,看FileInputStream時,發(fā)現(xiàn)getChannel方法與我們寫的代碼只有一個地方不同,即open方法的第三個參數(shù)不同,如果設(shè)置為false,就不能鎖住文件了。缺省的getChannel方法,就是false,因此,不能鎖住文件。

java代碼右下角加鎖能運行嗎為什么

能。java代碼右下角加鎖能運行,是因為多線程共享的代碼區(qū)域需要上鎖,防止多線程同時訪問代碼塊,造成線程安全問題。

Java 對象鎖 子類與父類

重入?明明是重寫了父類中的dosomething()方法,繼承類中有時候子類需要對父類繼承的方法進行改進。你這里的super.dosomething();是父類的屬性,System.out.println("child is doing something");就屬于子類完善的屬性,這時你調(diào)用子類的dodosomething()方法時是重寫后的方法。這樣的話父類a的那個方法被鎖了吧,不過我還沒聽過內(nèi)置對象鎖這種東西

網(wǎng)頁題目:java對父類代碼加鎖,java中鎖的概念
轉(zhuǎn)載來于:http://chinadenli.net/article13/dsiepds.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作動態(tài)網(wǎng)站網(wǎng)站內(nèi)鏈軟件開發(fā)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)