博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java多线程读文件比单线程提高效率的实例
阅读量:6608 次
发布时间:2019-06-24

本文共 2305 字,大约阅读时间需要 7 分钟。

假设有两个文本文件Arrays-1.txt和Arrays-2.txt,内容格式如下:

1

2

3

4

.

.

.

用单线程分别读这两个文件并求和,花费时间time1;用两个线程同时读这两个文件并求和,花费时间time2;结果显示:time1>time2,因此说明多线程可以提高效率.测试计算机配置:双核Intel Core i3 cpu550,4G RAM

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 }

 

 

转载于:https://www.cnblogs.com/shajianheng/archive/2012/12/04/2802107.html

你可能感兴趣的文章
iOS之UI--关于modal
查看>>
各种U启网启什么的都是浮云
查看>>
请问JDBC中IN语句怎么构建
查看>>
2015第52周六
查看>>
UIScrollView设置了contentSize后还是没办法滚动?
查看>>
POJ 1205 Water Treatment Plants(递推)
查看>>
国内外DNS服务器地址列表
查看>>
买电脑之受骗经历--与诸位共享,愿诸位多一个心眼
查看>>
Lind.DDD.Authorization用户授权介绍
查看>>
counting objects in class
查看>>
上海Uber优步司机奖励政策(2月1日~2月7日)
查看>>
第二章 JVM内存分配
查看>>
Codeforces Round #272 (Div. 2)
查看>>
ThinkPHP3.2.3 自定义标签库的使用
查看>>
Activiti 5.17 实体对象与类和数据库表的映射
查看>>
【转】SVN服务器端安装、配置与管理--不错
查看>>
Fragment中的setUserVisibleHint()方法调用
查看>>
获取、增加、修改、删除sqlserver字段描述及快速查看表字段与描述
查看>>
转FTP协议详解
查看>>
js继承实例
查看>>