Ich habe eine Liste von string (tagList), die unter mehreren Threads zum Lesen geteilt werden müssen, also erstelle ich eine unmodifizierbare Version davon und übergebe sie an Threads, ich bin nicht sicher, ob es threadsicher ist, da Threads diese Liste nur so lesen Ich denke, es sollte in Ordnung sein?ist nicht änderbar Thread sicher?
auch wenn ich diese unmodifialble Liste zu den Threads überließe, übergibt es eine einzelne Kopie und von Threads geteilt oder erstellt es mehrere Kopien und übergibt eine Kopie an jeden Thread?
hier ist mein Code:
final List<String> tList = Collections.unmodifiableList(tagList);
List<Future<Void>> calls = new ArrayList<Future<Void>>();
FileStatus[] fsta = _fileSystem.listStatus(p);
for (FileStatus sta : fsta) {
final Path path = new Path(sta.getPath(), "data.txt");
if (!_fileSystem.exists(path)) {
continue;
}
else {
calls.add(_exec.submit(new Callable<Void>() {
@Override
public Void call() throws Exception {
filterData(path, tList);
return null;
}
}));
}
}
Es ist fadensicher. – jdb