c语言文件读写 多线程

c语言文件读写 多线程,第1张

线程的是A文件,次线程写的是B文件,两者不冲突。4K的buffer已经算很小了。重点是主次线程共享的数据需要做同步,毕祥所以才造成樱侍了要等待的手颂搏现象。你说的类似消费者和生产者模型。

public static void main(String[] args) {

File data = new File("data.txt")

try {

InputStreamReader read = new InputStreamReader(new FileInputStream(

data), "UTF-8")

final BufferedReader bufferedReader = new BufferedReader(read)

for (int i = 0i <5i++) {

new Thread(new Runnable() {

@Override

public void run() {

String lineTXT = null

synchronized (bufferedReader) {

try {

while ((lineTXT = bufferedReader.readLine()) != null) {

System.out.println(Thread.currentThread()+":"+lineTXT)

bufferedReader.notify()

bufferedReader.wait()

}

} catch (IOException e) {

e.printStackTrace()

} catch (InterruptedException e) {

e.printStackTrace()

}finally{

bufferedReader.notifyAll()

}

}

}

}).start()

}

} catch (UnsupportedEncodingException e) {

e.printStackTrace()

} catch (FileNotFoundException e) {

e.printStackTrace()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12162065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存