java线程池读文件_多线程读取Java文件

我正在创建线程以读取Java中的文件.当我创建2个线程时,每个线程都读取整个文件,而我希望它们读取文件的不同部分.我尝试放入sleep(),join(),yield(),但是在包含它们之后,这只会减慢读取速度.

public class MyClass implements Runnable {

Thread thread;

public MyClass(int numOfThreads) {

for(int i=0;i < numOfThreads; i++) {

thread = new Thread(this);

thread.start();

}

}

public void run() {

readFile();

}

}

在readFile中,在while循环(逐行读取)中,我调用了sleep()/ yield().如何使线程读取文件的不同部分?

更新了用于读取文件的方法…

public synchronized void readFile() {

try {

String str;

BufferedReader buf = new BufferedReader(new FileReader("read.txt");

while ((line = buf.readLine()) != null) {

String[] info = str.split(" ");

String first name = info[0];

String second name = info[1];

try {

Thread.sleep(100);

} catch (InterruptedException e) {

}

} catch (IOException e) {

System.out.println("Error : File not found");

e.printStackTrace();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值