Java 如何在读取文件期间获取线程跟踪

Java 如何在读取文件期间获取线程跟踪,java,multithreading,thread-safety,Java,Multithreading,Thread Safety,我有一个文件,我想做以下任务:只是为了获得更多关于线程读写文件的知识 当一个应用程序启动并读取文件时,我想知道所有打开的流的信息,以及有多少线程从同一个流中读取 是否有一种方法可以通过反射获得所有流信息。还有别的办法吗 我相信这是你必须了解自己的事情。如果您在线程之间共享一个文件流,我建议您不要这样做,请使用一个线程来读取该流,并在需要时将工作传递给线程池。您可以跟踪所有试图读取流的线程。我建议使用某种StreamFactory类为您维护这些信息。然后,线程可以执行InputStream get

我有一个文件,我想做以下任务:只是为了获得更多关于线程读写文件的知识

当一个应用程序启动并读取文件时,我想知道所有打开的流的信息,以及有多少线程从同一个流中读取


是否有一种方法可以通过反射获得所有流信息。还有别的办法吗

我相信这是你必须了解自己的事情。如果您在线程之间共享一个文件流,我建议您不要这样做,请使用一个线程来读取该流,并在需要时将工作传递给线程池。您可以跟踪所有试图读取流的线程。

我建议使用某种StreamFactory类为您维护这些信息。然后,线程可以执行InputStream getStreamFile和closeStreamInputStream等操作,工厂将维护哪个线程打开了哪些流的列表,并提供一些统计功能,例如:

public Collection<InputStream> getOpenStreams()
public int getNumThreadsWithStream(InputStream);