最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java多線程有序讀取同一個文件

 更新時間:2019年08月29日 14:14:48   作者:Changshu135  
這篇文章主要為大家詳細介紹了java多線程有序讀取同一個文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本人剛參加工作,面試的時候遇四道筆試題,其中就有這道多線程有序讀取文件的題目,初看時拿不準,感覺會,又感覺不會。于是放棄了這道題,今天閑下來好好做一遍。

//定義一個runnable接口的實現(xiàn)類
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class RunnableImpl implements Runnable{
 //定義文件讀取的游標位置
 private static int now=0;
 //定義即將被讀取的文件
 static File file=new File("source/error.log");
 //使用io包中的RandomAccessFile類,支持文件的隨機訪問
 static RandomAccessFile raf=null;
 //定義每次讀取的字節(jié)數(shù)
 final static int len=256;
 
 RunnableImpl() throws IOException{
 raf=new RandomAccessFile(file, "rw");
 }
 @Override
 public void run() {
 while(true){
 try {
 //synchronized實現(xiàn)多線程的同步
 synchronized (raf) {
 //將文件內容讀取到b字節(jié)數(shù)組中
 byte[] b = new byte[len];
 //設置游標位置
 raf.seek(now);
 int temp=raf.read(b);
 //如果沒讀取到,就結束線程
 if(temp==-1){
  return ;
 }
 //設置游標偏移量
 now+=temp;
 //打印文件內容
 System.out.println(new String(b));
 }
 
 
 } catch (IOException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 
 }
}

運行程序,我使用了3個線程

public static void main(String[] args) throws IOException {
 RunnableImpl run=new RunnableImpl();
 new Thread(run).start();
 new Thread(run).start();
 new Thread(run).start();

 }

文件內容截圖

輸出結果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 淺聊一下Spring?Security的使用方法

    淺聊一下Spring?Security的使用方法

    Spring?Security?是一個基于?Spring?框架的安全框架,提供了一套安全性認證和授權的解決方案,用于保護?Web?應用程序和服務,接下來小編就和大家聊聊Spring?Security,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • OutOfMemoryError內存不足和StackOverflowError堆棧溢出示例詳解

    OutOfMemoryError內存不足和StackOverflowError堆棧溢出示例詳解

    這篇文章主要為大家介紹了OutOfMemoryError內存不足和StackOverflowError堆棧溢出示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 使用jmeter實現(xiàn)對jar包的調用方式

    使用jmeter實現(xiàn)對jar包的調用方式

    這篇文章主要介紹了使用jmeter實現(xiàn)對jar包的調用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • MapReduce核心思想圖文詳解

    MapReduce核心思想圖文詳解

    今天小編就為大家分享一篇關于MapReduce核心思想圖文詳解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java冒泡排序簡單實現(xiàn)

    Java冒泡排序簡單實現(xiàn)

    這篇文章主要介紹了Java冒泡排序簡單實現(xiàn),具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • java使用泛型實現(xiàn)棧結構示例分享

    java使用泛型實現(xiàn)棧結構示例分享

    泛型是Java SE5.0的重要特性,使用泛型編程可以使代碼獲得最大的重用。由于在使用泛型時要指明泛型的具體類型,這樣就避免了類型轉換。本實例將使用泛型來實現(xiàn)一個棧結構,并對其進行測試
    2014-03-03
  • java多線程有序讀取同一個文件

    java多線程有序讀取同一個文件

    這篇文章主要為大家詳細介紹了java多線程有序讀取同一個文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Spring MVC學習教程之視圖深入解析

    Spring MVC學習教程之視圖深入解析

    這篇文章主要給大家介紹了關于Spring MVC學習教程之視圖解析的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或使用spring mvc具有一定的參考學習價值,需要的朋友們下面來一起看看吧
    2018-11-11
  • webservice實現(xiàn)springboot項目間接口調用與對象傳遞示例

    webservice實現(xiàn)springboot項目間接口調用與對象傳遞示例

    本文主要介紹了webservice實現(xiàn)springboot項目間接口調用與對象傳遞示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Java讓泛型實例化的方法

    Java讓泛型實例化的方法

    這篇文章主要介紹了Java讓泛型實例化的方法,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07

最新評論

柞水县| 长沙县| 金华市| 剑河县| 安阳市| 龙口市| 海丰县| 卫辉市| 闽侯县| 集安市| 安阳县| 红桥区| 玛纳斯县| 盘锦市| 辽中县| 霍城县| 康定县| 云浮市| 无棣县| 凌海市| 平武县| 耒阳市| 平陆县| 元阳县| 鄂州市| 运城市| 原阳县| 万荣县| 兰考县| 阜康市| 苍梧县| 上犹县| 澎湖县| 双流县| 德安县| 乌苏市| 柳河县| 鹤壁市| 丽江市| 当涂县| 荣成市|