구아바 10+에서 Google은 Files.deleteDirectoryContents()을 사용하지 않습니다. JavaDoc의 답변 :Guava에서 Files.deleteDirectoryContents()가 사용되지 않는 이유는 무엇입니까?
더 이상 사용되지 않습니다. 이 방법은 기호 링크 검색이 불량하고 조건으로 인해 어려움을 겪습니다. 이 기능은 이 rm -rf 또는 del/s와 같은 운영 체제 명령으로 포설 될 때까지만 적절하게 지원 될 수 있습니다. 이 방법은 구아바에 구아바에서 제거 될 예정입니다 것은 11.0
내가 경쟁 조건이 이유에 대해 혼란 스러워요 놓습니다. 나는이 방법을 사용하는 것이 실제로 유용하며 운영체제에 좋지 않은 해결책을 내고 있다고 생각한다. 저자가 왜이 결정을했는지 공유 할 수 있습니까?
더 명확히 말하면 경쟁 조건 문제는 주요한 버그가 아니라고 생각합니다. 'ArrayList'와 같은 많은 라이브러리들은 쓰레드에 안전하지 않거나 경합 조건을 가지고 있습니다. 'File.remove'조차도 같은 문제가 있습니다. 그러나 그들은 모두 문서화되어 있습니다. 그래서 나는 그들이 문서화 된 것을 왜 사용하지 않기로 결정했는지에 관한 문서가 이미 말한 것 외에는 대답을 듣기를 희망했다. –
이 레이스 조건과 일반적인 비 스레드 안전 클래스 간의 차이점은 "수정"이 없다는 것입니다. 반대로 잠금 객체를 동기화하여 스레드 안전 클래스가 아닌 클래스로 Java 스레드 안전 문제를 해결할 수 있습니다. 단순히 사람들이 기대하는 것을 할 수없는 방법은 나쁜 방법입니다. –
좋은 지적입니다. 감사. –