是否可以同时读取和写入文件?

moh*_*ida 8 java file-io multithreading

这是场景:

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

有可能做这样的事吗?

如果没有,还有另一种方法可以做这样的事吗?

Che*_*eng 13

你提到的问题是着名的生产者消费者问题

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

实际使用的一个例子是AjaxYahooSearchEngineMonitor

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

线程B做的是,它将逐个从队列中获取项目并处理它们.当队列中没有项目时,线程B将在那里等待.参见源代码的第83行.