【问题标题】:Is it possible to read and write in file at the same time?是否可以同时读取和写入文件?
【发布时间】:2010-10-19 07:47:45
【问题描述】:

这是场景:

  • ThreadA 将从某个套接字读取,并将数据写入“MyFile.txt”
  • ThreadB 将读取“MyFile”,当它到达末尾时,它将循环直到 MyFile 中有新数据可用(因为我不想重新打开“MyFile.txt”,而浪费时间所以我到达了我所在的位置..)。

这样的事情有可能吗?

如果没有,还有其他方法可以做到这一点吗?

【问题讨论】:

标签: java multithreading file-io


【解决方案1】:

你提到的问题是著名的Producer Consumer Problem

对此的常见解决方案是使用BlockingQueue

AjaxYahooSearchEngineMonitor 是一个真实世界用法的例子

线程A所做的是,它会将一个字符串提交到队列中,然后立即返回。

线程 B 所做的是,它会从队列中一个一个地取出项目,并处理它们。 当队列中没有项目时,线程 B 将在那里等待。见源码第83行。

【讨论】:

  • 非常感谢!!这正是我想要的。它比从数据库或文件中读/写更好。
猜你喜欢
  • 2012-06-29
  • 2014-06-17
  • 2020-04-18
  • 2015-03-15
  • 1970-01-01
  • 2015-06-26
  • 2013-12-17
  • 1970-01-01
相关资源
最近更新 更多