ファイル監視、メモリ不足

ファイル監視機能がメモリ不足になったのはなぜですか?

プロジェクトで忙しいので、コードを貼り付けて理由を分析するだけです。

プロジェクトには監視されている構成ファイルがあり、これはデータ用です。赤線部分がファイルの修正箇所です

ファイル監視の方法です。ファイルの変更は初期化メソッドを呼び出し、初期化の下部では上記のメソッドを呼び出します。

これが初期化メソッドであり、以下では上記のファイル監視メソッドを呼び出します。循環しました。また、初期化メソッドは同期です。上記監視は3秒です

問題を見つけるプロセスも比較的難しく、私は問題を見つけてプロジェクトを開始しました。30分ほど経つと、コンピュータのCPUが100%のままになります。

結論は。この場所のファイルリスナーにスレッドが作成されます。ファイルを変更すると、ファイル リスナーが再度呼び出されます。ループにより複数のスレッドが作成されます。そして、それ以降に作成されたスレッドはすべてブロックされます。スレッドがどんどん増えています。メモリ不足です。

問題が何であるかを判断する方法。プロジェクトが開始され、artha が開始されます。thread -n 10 を呼び出して、スレッド情報を常に確認します。スレッド数が多いことが分かりました。スレッドスタック情報のコードの位置を確認すると、設定ファイルを呼び出しているメソッドがあり、約1秒に1回変更されていることがわかります。

解決策: この問題を解決する方法。コードはどのように変更すればよいでしょうか?

おすすめ

転載: blog.csdn.net/haoweng4800/article/details/129153536