首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java多线程读资料比单线程提高效率的实例

2013-04-02 
Java多线程读文件比单线程提高效率的实例View Code1 import java.io.* 2 public class ThreadsSum6{ 3pub

Java多线程读文件比单线程提高效率的实例

View Code
 1 import java.io.*; 2 public class ThreadsSum6{ 3     public static void main(String[] args) throws IOException { 4        String str; 5        long sum1=0; 6        long start = System.currentTimeMillis(); 7        FileReader fr=new FileReader("arrays-1.txt"); 8        //建立文件输入流 9        BufferedReader br=new BufferedReader(fr);10        //建立缓冲输入流11 12        while ((str=br.readLine())!=null) {13              sum1+=Integer.parseInt(str);14        }15        fr=new FileReader("arrays-2.txt");16        br=new BufferedReader(fr);17        while ((str=br.readLine())!=null) {18              sum1+=Integer.parseInt(str);19        }20        fr.close();21        long end = System.currentTimeMillis();22        System.out.println("sum1="+sum1);23        System.out.println("time1="+(end - start));24 25        start = System.currentTimeMillis();26        ReadFileThread th1=new ReadFileThread("arrays-1.txt");27        ReadFileThread th2=new ReadFileThread("arrays-2.txt");28        th1.start();29        th2.start();30        try{//等待线程结束31         th1.join();32         th2.join();33        }catch(Exception e){}34        long sum2=th1.getSum()+th2.getSum();35        end = System.currentTimeMillis();36 37        System.out.println("sum2="+sum2);38        System.out.println("time2="+(end - start));39    }40 }41 class ReadFileThread extends Thread{42     long sum=0;43     FileReader fr;44     BufferedReader br;45     String str;46     public ReadFileThread(String fileName){47         try{48             fr=new FileReader(fileName);49             //建立文件输入流50             br=new BufferedReader(fr);51             //建立缓冲输入流52         }53         catch(Exception e){System.out.println("error1");}54     }55     public void run(){56         try{57              while((str=br.readLine())!=null) {58                 sum+=Integer.parseInt(str);59              }60              fr.close();                61         }62         catch(Exception e){System.out.println("error2");}63     }64     long getSum(){65         return sum;66     }67 }

?

?

热点排行