मेरे पास स्ट्रिंग (टैगलिस्ट) की एक सूची है जिसे पढ़ने के लिए कई धागे के बीच साझा करने की आवश्यकता है, इसलिए मैं इसका एक अपरिवर्तनीय संस्करण बनाता हूं और इसे थ्रेड में पास करता हूं, मुझे यकीन नहीं है कि यह थ्रेड सुरक्षित है, क्योंकि धागे केवल उस सूची को पढ़ते हैं मुझे लगता है कि यह ठीक होना चाहिए?unmodifiableList धागा सुरक्षित है?
भी जब मैं धागे को उस अनमोडिफिबल सूची को पास करता हूं, तो क्या यह एक प्रतिलिपि पास करता है और थ्रेड्स द्वारा साझा किया जाता है या क्या यह एकाधिक प्रतिलिपि बनाता है और प्रत्येक प्रति को एक प्रति पास करता है?
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;
}
}));
}
}
यह धागा सुरक्षित है। – jdb