Доклад: Устройство многопоточности в iOS / Александр Андрюхин (Авито)

  Рет қаралды 25,924

Podlodka

Podlodka

Күн бұрын

Пікірлер
@anatoliiafarinov6591
@anatoliiafarinov6591 3 жыл бұрын
Лекция прелесть! Всем советую. Есть и глубина и простота. Самое главное, что всё структурированно и по существу. Использую как обучающее пособие! Автору - респект! Умница!
@andreychicago
@andreychicago 2 жыл бұрын
На людях в черном поставил лайк, Александр гений - презентация огонь :)
@elfdeveloper
@elfdeveloper 3 жыл бұрын
Единственное: RunLoop скорее всего поток не в sleep погружает, а более оптимально ставит поток на condition wait. Когда событие прилетает, пинает condition wait и поток начинает шуршать, пока все ивенты не обработает. После обработки, поток снова встает на condition wait.
@ilia_fedoroff
@ilia_fedoroff 3 жыл бұрын
А чтобы упороться в concurrency можно еще открыть Лекторий ФПМИ (привет физтех) и посмотреть лекции и семинары на эту тему (тред ТПМС). Со всеми кишками (как модно в 2021). Там и модели памяти, и кэши, и санитайзеры, и таски и вот это вот все
@egormikhailov134
@egormikhailov134 3 жыл бұрын
Спасибо в очередной раз за то, что создаете странные мифы. Из того же доклада Роба Пайка: parallelism is not a goal of concurrency model. Не надо, пожалуйста, путать людей: в concurrency вещи МОГУТ исполняться параллельно, но они НЕ ОБЯЗАНЫ это делать! Если машина одноядерная, тогда да, никакого параллелизма там не будет, только переключение контекста. А вот если процессу на многоядерной машине выделили два потока (в случае с iOS - mach потока), тогда параллелизм в модели concurrency возможен. Резюмируя, concurrency does not always imply the parallelism!!! А за ресурсы для глубокого погружения - спасибо большое!
@ProIOS.
@ProIOS. Жыл бұрын
Шикарно ! Спасибо за материал!)
@yacoder-proit
@yacoder-proit 10 ай бұрын
Крутой доклад на тему многопоточности, спасибо автору!
@Дмитрий-м2з6в
@Дмитрий-м2з6в 4 жыл бұрын
насчет интересного вопроса который был озвучен в видео, ну как я понимаю то на потоке ранлуп оборачивает выполнение задачи в авторелизпул который в свою очередь вызывает метод дрейн и получается деинит (если счетчик ссылок 0) вызывается на том потоке на котором это обнуление произошло
@AnthonyMarchenko
@AnthonyMarchenko 4 ай бұрын
да, всё верно, в 2024 году не только async/await завезли, но и ChatGPT :) -- В Swift деинициализация объекта (dealloc) происходит в том потоке, в котором счётчик ссылок (reference count) стал равен нулю. Это означает, что если последний сильный указатель на объект был освобождён в основном потоке, деинициализация произойдёт в основном потоке. Если это произошло в фоновом потоке, деинициализация произойдёт в этом фоне. Важно помнить, что если деинициализатор объекта выполняет какие-либо важные операции, которые должны быть выполнены в определённом потоке (например, UI-обновления, которые могут выполняться только в главном потоке), эти операции должны быть явно отправлены в нужный поток, например, через DispatchQueue.main.async для главного потока. -- можно проверить class MyClass { deinit { print("Deinitialized on thread: \(Thread.current)") } } DispatchQueue.global().async { var obj: MyClass? = MyClass() obj = nil // Деинициализация произойдет в фоновом потоке }
@AnthonyMarchenko
@AnthonyMarchenko 4 ай бұрын
спасибо, шикарная подача
@ilia_fedoroff
@ilia_fedoroff 3 жыл бұрын
Вот, что говорят на WWDC Modernizing GCD Usage относительно разницы между parallelism и concurrency: The easy way to separate these two concepts in your mind, is to realize that parallelism is something that usually requires multiple cores and you want to use them all at the same time. And concurrency is something that you can do even on a single core system. It's about how you interpose the different tasks that are part of your application.
@Mirorval
@Mirorval 9 ай бұрын
Интересно слушать и полезно. Спасибо.
@sovrinfo
@sovrinfo 2 жыл бұрын
Спасибо за видео.Коммент в поддержку!
@torburgmax
@torburgmax 3 жыл бұрын
async/await завезли, поздравляю :)
@elfdeveloper
@elfdeveloper 3 жыл бұрын
Да, наконец-то. Даже в системные фреймворки завезли (например, в URLSession). Но это конечно скорее минус, так как функционал - вангую - будет доступен только с iOS SDK 15+. Имею в виду, не воспользуешься функционалом Concurrency, если поддерживаешь более древние операционки
@torburgmax
@torburgmax 3 жыл бұрын
@@elfdeveloper ну это ниче страшного, всегда так было)
@morrterry
@morrterry Жыл бұрын
Зачем Третий Чел? Он походу забыл, что на конференции и чисто фильме сидит смотрит
@_hejsan
@_hejsan 3 жыл бұрын
Спасибо! А можно где-то скачать презентацию?
@IhorFedii-n1i
@IhorFedii-n1i 4 жыл бұрын
Здорово! спасибо!💪🏻
@АлександрСенченков-д2з
@АлександрСенченков-д2з 3 жыл бұрын
22:20 Написано что: "Актор умеет получать сообщения, принимать сообщения..." В чем разница между получать и принимать? Может там должно быть отправлять?
@leonif1
@leonif1 3 жыл бұрын
там много оговорок. Например нельзя ставить async таску на serial очередь. Но это не так. Иначе бы DispatchQueue.main.async {} вызывал был дедлок, так main serial очередь. Будет дедлок если вы запустите sync таску внутри которой запустите async таску на serial очереди. Вот тогда дедлок
@krasnodar95
@krasnodar95 4 жыл бұрын
Отличная лекция👍
@kirillkapis
@kirillkapis Жыл бұрын
51:00 - Перехода лучше уже не будет
@gabibli
@gabibli 6 ай бұрын
1:08:00
@phat80
@phat80 9 ай бұрын
С 45 минуты начинается 1С.
@libx75
@libx75 3 жыл бұрын
Задроты справа все видео будут?
@nikk6578
@nikk6578 3 жыл бұрын
Как удобно что рандом выбрал уже знакомую модель акторов :) kzbin.info/www/bejne/mGiqaWlsnaqVd7s
@TheScrinn
@TheScrinn 3 жыл бұрын
Ну так, обзорная статья если и так уже знаком с понятиями. Особо ничему тут не учат и не объясняется для новичков смотреть только если вы уже до этого много читали про мультипоточность
@TheScrinn
@TheScrinn 3 жыл бұрын
По сути целый час траты времени, ничему тут не научитесь по сабжу
@TheScrinn
@TheScrinn 3 жыл бұрын
Ну рекомендованная литература в конце норм
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 20 МЛН
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН
Concurrency
3:23:21
Young&&Yandex: мобильная разработка
Рет қаралды 4,1 М.
Многопоточность в iOS | GCD | Swift
1:24:31
Mi Mari iOS
Рет қаралды 1,5 М.
Василий Усов - А так ли нужны акторы в Swift Concurrency?
46:54
Mobius — конференция по мобильной разработке
Рет қаралды 3 М.
RunLoop на главном потоке / Антон Сергеев
43:11
Команда ВКонтакте
Рет қаралды 8 М.
Async/await. Что это такое и с чем его едят? iOS Такой
42:31
iOS Такой • IOS Разработка • IT Подкасты
Рет қаралды 6 М.