【发布时间】:2014-10-06 03:35:26
【问题描述】:
所以我想检查一个文件是否包含数据。我的程序是多线程的,因此它无法工作,因为无法同时访问文件并且还会出错,是否可以将其加载到字符串数组并检查该数组是否包含我想要的文本?
如果我在同一时间从 5-10 个不同的线程中检查它会重要吗?
以及如何同时从所有这些线程将文本写入文件,但它应该查看它是否正在使用并等待然后写入,因此不会记录错误。
【问题讨论】:
标签: arrays vb.net multithreading
所以我想检查一个文件是否包含数据。我的程序是多线程的,因此它无法工作,因为无法同时访问文件并且还会出错,是否可以将其加载到字符串数组并检查该数组是否包含我想要的文本?
如果我在同一时间从 5-10 个不同的线程中检查它会重要吗?
以及如何同时从所有这些线程将文本写入文件,但它应该查看它是否正在使用并等待然后写入,因此不会记录错误。
【问题讨论】:
标签: arrays vb.net multithreading
...是否可以将它加载到字符串数组并检查该数组是否包含我想要的文本?
是的。将文件读入字符串数组并检查数组中的一个字符串是否包含另一个字符串是一种直接的编程。
如果我在同一时间从 5-10 个不同的线程中检查它会很重要吗?
是的,这很重要。您必须以正确的方式实现代码,以确保它始终有效。
您的问题很难解读,但我猜您希望字符串数组在线程之间共享,并且您希望线程更新数组。在这种情况下,正确的同步是必不可少的,否则您可能会遇到竞争条件和内存异常。
如何同时从所有这些线程将文本写入文件,但它应该查看它是否正在使用并等待然后写入,因此不会记录错误。
您需要正确同步,以便在任何时候只有一个线程尝试写入文件。此外,您需要确保当另一个流打开文件时,一个线程不会尝试打开文件的流。 (这很可能是您当前错误的原因。Windows 上的 Java 不允许您这样做……尽管 Linux 上的 Java 允许这样做。)
我建议您阅读有关如何编写多线程程序的 Oracle Java 教程。
【讨论】: