SwifyWay
391 subscribers
89 photos
6 videos
5 files
131 links
Download Telegram
👍3
Хотели бы вы узнать как устроены внутри сложные фичи в продукте бигтеха (Допустим как в видео ниже)?
Anonymous Poll
96%
+
4%
-
👍4🔥21🤯1
Хотели бы вы поучастовать в мок собесе?

Псс в описании можно об этом отписать мне
Anonymous Poll
61%
+
39%
-
👍1
👍1
Какое будет значение count в каждом?
Anonymous Quiz
35%
0 1 2
34%
0 0 0
31%
1 1 1
1%
0 1 1
👍5😁3🔥2🤯21
2👍1🔥1
2😁2👍1🔥1🤯1
2
👍62🔥2
Что будет?
Anonymous Quiz
5%
1
26%
2
41%
3
28%
nil
👍1
2👍1🔥1🤯1
👍41🔥1🤯1
🤖 Что такое актор?

Актор — это reference type. Он нужен для защиты от data races.

🔐 Изоляция и доступ

• Внутренние свойства и методы актора изолированы от прямого доступа извне. Любой доступ требует использования ключевого слова await, что обозначает потенциальную точку останова.
• Исключения составляют non-isolated свойства или методы, которые не изменяют состояние и могут вызываться синхронно, без await .

🎯 Серийный исполнитель (Serial Executor)

• У акторов присутствует внутренняя очередь‑исполнитель, которая последовательно обрабатывает задачи, что обеспечивает потокобезопасность.
• При этом порядок выполнения может отличаться от FIFO и использовать приоритеты.

📏 Основные правила взаимодействия с акторами

• Доступ к изменяемым свойствам должен быть асинхронным и сопровождаться await.
• Использование non-isolated разрешается только для неизменяемых (let) или не влияющих на состояние методов.

🚀 Преимущества

• Намного проще в управлении по сравнению с DispatchQueue, Operation или lock’ами.
• Повышают потокобезопасность вашего кода.

Пример

• В статье приведён пример актора Account с let accountNumber, доступное синхронно (non-isolated), и изменяемым balance, доступным только через await в async‑методах.

🔗 Читать статью на Medium
👍3🔥2