私は再帰的なファイルチェックをしていますが、問題は私がそのメソッド自体の中にカウンターを持っていないので、私はそれを外に宣言しました。しかし、問題は、これはスレッドセーフではないということです。スレッドセーフな再帰呼び出し(getTotalFiles)の作成方法
private int countFiles = 0;
private int getTotalFiles(String path) {
File file = new File(path);
File listFile[] = file.listFiles();
for (File f : listFile) {
if (f.isFile()) {
countFiles++;
}
if (f.isDirectory()) {
getTotalFiles(f.getAbsolutePath());
}
}
return countFiles;
}
クラス変数countFilesはスレッドセーフではありません。どのようにこのスレッドを安全にするには?
あなたはまだ同期を使用していますか? –