У меня есть простая проблема - у меня есть несколько потоков, которые выполняют добавления в файл, основанный на имени файла, которое пользователь может выбрать. А именно - 2 разных экземпляра строки приведут к двум различным случаям пути , которые не равны, согласно path.equals () , но указывают на один и тот же файл. Я сам проверил это, и кажется, что они правы. Например, рассмотрим этот пример, который я запустил на своей машине Windows 11. < /P>
Код: Выделить всё
final Path a = Path.of("abc.java"); //find abc.java in the current directory
final Path b = Path.of("./abc.java"); //go to current directory, then find abc.java
System.out.println(a.equals(b)); //false, but they are the same file!
< /code>
Мне нужно что -то, чтобы синхронизировать. И ясно, что просто синхронизация на Path.of (SanitizedStringFromuser)
не будет его сокращать. Конечно, я мог бы воспроизвести «Whack-a-Mole» и попытаться найти все возможные способы, которыми 2 разные экземпляры string могли бы решить до того же файла, когда он будет обслуживаться path.of () . Но я уверен, что я переосмысливаю колесо здесь.>
Подробнее здесь:
https://stackoverflow.com/questions/796 ... the-same-f