172 похожих чатов

Ребята привет Учу многопоточность, но голая теория не настолько демонстративна подскажите пожалуйста

(можно просто текстом) в каких условиях используется например NSLock? NSRecursicveLock? NSCondidtionLock?

вариант ответа:
Например у нас есть задача отредактировать массив и залить его в CoreData
для того чтобы не залить в память неотредактированный массив мы создаем поток в котором происходит редактирование после чего будет подан сигнал во второй поток о том что можно стартовать записывать в память. То есть сначала блокируется доступ к данным (редактором) затем освобождается и блокируется доступ (сохранятелем)

Сорян за long read но правильно ли я понимаю суть?

4 ответов

15 просмотров

Для CoreData сейчас существует высокуровневой API которе разруливает проблемы с многопоточностью. Так как CoreData не Thread-Safe, то дергать ее обькты можно только из того потока в котором объект создан. NSLock - просто заблокирвать. NSRecursicveLock - заблокировать для других потоков(что бы если у тебя рекурсия не блокировало) NSRecursicveLock , NSLock - это уже старое API, сейчас везде используют GCD, OperationQueue и мало того появились еще более модные штуки. Я честно говоря такие штуки в проектах уже 7 лет не видел.

original-Denisov Автор вопроса
Dmytro Hrebeniuk
Для CoreData сейчас существует высокуровневой API ...

А ничосе) ок а без конкретных инструментов , когда требуется умышленно блочить поток? User case так сказать?

original-Denisov Автор вопроса
Dmytro Hrebeniuk
ну так для этого есть GCD

Пример пожалуйста использования, без кода

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта