Что означает свойство & ldquo; Nonatomic & rdquo; имею в виду?

Я думаю, что методы StringEscapeUtils.escapeHtml () и unescapeHtml () библиотеки Jakarta Commons Lang - это то, что вы ищете. См. http://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/StringEscapeUtils.html .

141
задан swiftBoy 1 April 2016 в 18:35
поделиться

6 ответов

Посмотрите на Apple Docs .

В основном, если вы говорите неатомный , и вы генерируете методы доступа, используя @synthesize , то если несколько потоков пытаются изменить / прочитать собственность сразу, может случиться плохое. Вы можете получить частично записанные значения или переизданные / сохраненные объекты, которые могут легко привести к сбоям. (Однако это потенциально намного быстрее, чем атомарный метод доступа.)

Если вы используете значение по умолчанию (которое является атомарным ; раньше для этого не было ключевого слова, но теперь теперь ), затем методы @synthesize d используют блокировку на уровне объекта, чтобы обеспечить сериализацию нескольких операций чтения / записи в одно свойство. Как указывают документы Apple, это не означает, что весь объект является потокобезопасным , но отдельные свойства для чтения / записи являются.

Конечно, если вы реализуете свои собственные средства доступа, а не используете @synthesize , я думаю, что эти объявления ничего не делают, кроме того, что выражают ваше намерение относительно того, реализовано ли свойство безопасным способом.

267
ответ дан 23 November 2019 в 22:57
поделиться

Если вы укажете «атомарный», сгенерированные функции доступа будут иметь дополнительный код для защиты от одновременных обновлений.

8
ответ дан 23 November 2019 в 22:57
поделиться

В многопоточной программе атомарная операция не может быть частично прервана, в то время как неатомарные операции могут.

Поэтому вы должны использовать взаимные исключения (или что-то еще вот так) если у вас есть критическая операция, которая не является атомарной, которую вы не хотите прерывать.

9
ответ дан 23 November 2019 в 22:57
поделиться

Обычно атомарные средства, которые записывают / читают свойство, выполняются как одна операция. Atomic_operation

6
ответ дан 23 November 2019 в 22:57
поделиться

В дополнение к тому, что уже было сказано о безопасности потоков, неатомарные свойства работают быстрее, чем атомарные методы доступа. Это не то, о чем вам обычно нужно беспокоиться, но имейте это в виду. По этой причине сгенерированные свойства Core Data частично неатомичны.

12
ответ дан 23 November 2019 в 22:57
поделиться

Один для многопоточности. Один не

-2
ответ дан 23 November 2019 в 22:57
поделиться