1
간단한 질문이 있습니다. 내가 읽기/쓰기 작업에 목록이있는 경우 는 :Collections.synchronizedList가 생성자로 전달되었습니다.
private List<String> _persistedFilesList = Collections.synchronizedList(new ArrayList<String>());
을하고 난 코드 블록 어딘가에 사용이
new ArrayList<String>(_persistedFilesList);
이 블록의 코드는 동기화 해를 필요로 하는가? 새 ArrayList의 생성자에서 java doc에 iterator가 언급되어 있고 목록을 순회하는 모든 작업이 synchList에 동기화되어 있어야합니다. 그러나 나는 확실하지 않다.
감사합니다.
새 목록에서 반복되는 경우 동기화 된 링크가 전달 된 링크가 있습니까? 새 목록의 생성 된 순간에 synchronized (_persistedFilesList)를 사용하면 이에 대한 읽기/쓰기 작업이 수행되지 않습니다. – VladLucian
새 ArrayList를 만든 이후의 모든 작업에는 목록을 만드는 데 사용한 Collection과 연결된 링크가 없습니다. 첫 번째 질문에 대한 대답은 아니오입니다. 두 번째 질문을 완전히 이해할 수 없습니다. 더 많은 정보를 제공해 주시겠습니까? – vinayknl
동기화 된 경우 (_persistedFileNames) {... new ArrayList (_persistedFilesList); }, 코드 블록 실행 순간에 _persistedFileNames 목록에 읽기/쓰기 작업이 수행되지 않습니다. –
VladLucian