時々 1 つのテキスト ファイルに書き込む Java プロセスがいくつかあります。これらは同じ仮想マシンのスレッドではなくjava.exe
、コマンド ラインから実行されている個別のプロセスです。これらのプロセスは、同じログ ファイルに書き込みます。私たちは使用しcanWrite
ました...
while (!Log.canWrite()) {
System.out.println("File: " + LogPath + " is locked, waiting...");
Thread.sleep(2000);
}
...しかし、うまくいかないようです。次のエラーが表示されます。
The process cannot access the file because it is being used by another process) at java.io.FileOutputStream.openAppend(Native Method).
The Question:
このような状況でセマフォを整理するためのベストプラクティスは何ですか? ソリューションがリソースを消費しすぎず、全体的なパフォーマンスに大きな影響を与えないのであれば、それは素晴らしいことです。