当前位置: 首页 > 面试题库 >

是否可以同时读写文件?

殳勇
2023-03-14
问题内容

这是场景:

  • ThreadA将要从某些套接字读取,并将数据写入“ MyFile.txt”
  • ThreadB将读取“ MyFile”,到达末尾时,它将html" target="_blank">循环播放,直到MyFile中有新数据可用为止(因为我不想重新打开“ MyFile.txt”,并且浪费时间,所以我到达了从我所在的位置..)。

可以做这样的事情吗?

如果没有,还有其他方法可以做这种事情吗?


问题答案:

您提到的问题是著名的生产者消费者问题

常见的解决方案是使用BlockingQueue

现实世界用法的一个示例是AjaxYahooSearchEngineMonitor

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

线程B所做的是,它将从队列中一个接一个地拿起物品,并对其进行处理。当队列中没有项目时,线程B将在那里等待。参见源代码的第83行。



 类似资料:
  • 是否可以同时从套接字读取和写入?我有一个连续读取套接字的线程。由于只有一个线程从套接字读取,因此读取操作是线程安全的。现在我有很多线程(比如 100 个)写入套接字。因此,很明显,我必须通过做这样的事情来使写入操作线程安全, 现在我有一个线程不断调用readMessage()函数(在while循环中)。据我所知,如果套接字上没有要读取的消息,语句< code > inputstream . rea

  • 这不是一个浏览器。 我打算为我的机器人做一个“黑名单”数组,这将阻止用户运行命令。然而,我似乎只能在实际的bot文件上这样做,因为我还没有找到一种方法来做一个外部方法。 这就是我正在使用的:

  • 我知道Heroku使用临时文件系统,当dyno停止或重新启动时,文件会被丢弃,我对此没意见。我只需要临时存储文件。 我的ReactJS应用程序将一个. png图像文件写入/public文件夹——它在本地工作正常——但是没有任何东西被写入Heroku。可以将图像文件写入Heroku吗?如果可以,我需要配置什么设置吗?

  • 问题内容: 具体来说,问题是编写这样的方法: 如果数据在“超时”毫秒内可用,则返回值与in.read()相同,否则为-2。在方法返回之前,所有产生的线程必须退出。 为避免自变量,此处的主题为java.io.InputStream,如Sun(任何Java版本)所记录。请注意,这并不像看起来那么简单。以下是Sun的文档直接支持的一些事实。 in.read()方法可能是不可中断的。 将InputStre

  • 我正在逐行读取一个文件,并试图使它符合特定参数的行(在我的例子中,如果它以某个单词开头),我可以覆盖该行。 谢了!

  • 我需要一个不可重入的读写锁,因为锁可能由获取它的线程以外的线程释放。(我意识到这一点时,我开始间歇性地获取非法监视器状态异常。) 我不确定不可重入是否是正确的术语。ReentrantLock允许当前持有锁的线程再次获取它。我不想要这种行为,因此我称之为“不可重入”。 上下文是我有一个使用线程池的套接字服务器。每个连接没有一个线程。请求可能由不同的线程处理。客户端连接可能需要在一个请求中锁定,在另一