我们应用程序的平台是 Java 1.4.2。我们需要在这个版本的JVM(嵌入式系统)上运行某些认证应用。
其中一个应用程序正在创建一个线程 T1 来更新文件(通过写入文件)和另一个线程 T2,它应该读取更新的内容(T2 总是在 T1 之后启动)。
问题是写入线程 T1 被延迟,而读取线程 T2 正在读取不正确的数据。线程 T2 不检查文件内容是否已更新。
出于本讨论的目的,可以假设导致延迟的因素是不可修复的。我们无法更改应用程序,但可以更改 JVM 和本机层接口。
请建议在不更改应用程序的情况下序列化对文件的访问的解决方案。另外,请批评以下方法的可行性:在 JVM 中创建一个前瞻线程,该线程可以分析 java 字节码并序列化跨同一应用程序的多个线程对文件的访问。