Что означает для iOS FileManager поточнобезопасность? - PullRequest
1 голос
/ 22 января 2020

Я читаю / пишу файлы и папки в многопоточном приложении iOS. Я хочу, чтобы эти операции были поточно-ориентированными.

В документации NSFileManager говорится, что «вы должны создать уникальный экземпляр объекта файлового менеджера, назначить свой делегат этому объекту и использовать этот файловый менеджер для запуска ваших операций. «

Используются такие типы функций ( моя классификация ):

Операции« Запись »:

  • NSData writeToFile: параметры: NSDataWritingAtomi c
  • NSFileManager createDirectoryAtPath
  • NSFileManager createFileAtPath
  • NSFileManager removeItemAtPath * 10 * 10

    1022 *1022* операции :

    • NSFileManager fileExistsAtPath
    • NSFileManager subpathsAtPath

    Я выбираю один из таких вариантов для обеспечения безопасности потока:

    1. Создайте два NSFileManager: один для операций «Запись», другой для операций «Чтение». Я называю только atomi c write, поэтому NSFileManager должен сам защищать целостность данных.

    2. Добавить мьютекс, который позволит одновременное чтение / чтение, но не одновременное чтение / запись или запись / запись.

    Не могли бы вы посоветовать, какой вариант является более правильным / адекватным?

...