Multithreading в swift с нуля: урок 12 - GCD Dispatch Group + Bonus

  Рет қаралды 10,332

The Swift Developers

The Swift Developers

5 жыл бұрын

Двенадцатая серия по обучению Multithreading в программе Xcode.
Куда присоединиться:
Всем привет, теперь вы сможете меня поддержать и получить эксклюзивные и закрытые видео смотреть тут - boosty.to/theswiftdevelopers
1.Наше сообщество в вк(более 6 + тыс) = theswiftdevelopers​
2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 3 000 + тыс) - ​t.me/joinchat/Qswat5FErtb3cPfV
ссылки массив на фото из урока - let imageURLs = ["www.planetware.com/photos-larg...", "adriatic-lines.com/wp-content/...", "bestkora.com/IosDeveloper/wp-c...", "www.picture-newsletter.com/arc..." ]

Пікірлер: 48
@user-kk3wp3mi5o
@user-kk3wp3mi5o 5 жыл бұрын
24:08 "Если у кого-то пошла кровь из глаз, вы не расстраивайтесь" ))))))
@sergeylobanov4245
@sergeylobanov4245 2 жыл бұрын
Я думал никогда не разберусь с многопоточностью)) Но всё изменилось, когда я нашел ваши уроки. Уверен, ваш труд делает этот мир чуточку лучше. Спасибо
@enzo0508
@enzo0508 3 жыл бұрын
Работа с группой сделана с ошибкой, которая может привести к тому что изображения никогда не появятся, если один из ответов будет с ошибкой. Все это из-за использования guard. В случае ошибки не выполняется aGroup.leave() Есть два решения: 1. Развернуть опционал картинки через if let image1 = result { images.append(image1) } 2. Добавить defer { aGroup.leave() }
@akhmedovbakhtovar7142
@akhmedovbakhtovar7142 Жыл бұрын
+ в функции asyncGroup() надо поменять цикл for. aGroup.notify(queue: .main) { for i in 0...images.count-1 { view.ivs[i].image = images[i] print(images[i]) print(2) } }
@Pokruchin
@Pokruchin 5 жыл бұрын
Спасибо большое за уроки, все понятно, а с практическими примерами вообще шик. Нигде таких уроков подробных и фундаментальных больше не видел, даже на английском. Отдельное спасибо за спрайткит! Продолжайте в том же духе!
@LinaEngel
@LinaEngel Жыл бұрын
Огнище!! Спасибо, что ты есть и объясняешь все на примерах🙌🏻
@MegaDigri
@MegaDigri 5 жыл бұрын
Урок + топовые фразы от Евгения 😁😁😁
@akhmedovbakhtovar7142
@akhmedovbakhtovar7142 Жыл бұрын
Вы просто гений
@caspernew6697
@caspernew6697 4 жыл бұрын
Огромная благодарность за практику ! )
@77nixter
@77nixter 3 жыл бұрын
Спасибо большое!!! Класный урок 👍
@Intentor1
@Intentor1 4 жыл бұрын
Спасибо большое! Очень досконально - это хорошо.
@user-ih2wd3rn2k
@user-ih2wd3rn2k Жыл бұрын
Супер! Надо пересмотреть еще раз)))
@AusiAion
@AusiAion 4 жыл бұрын
Отличные примеры и разъяснения, благодарю!
@vadimomelchenko699
@vadimomelchenko699 2 жыл бұрын
Шикарное объяснение и примеры. Спасибо за урок))
@ForcyProd
@ForcyProd Жыл бұрын
спасибо за уроки, большое дело делаете!
@m1k0lau5
@m1k0lau5 4 жыл бұрын
30:07 из группы нужно выходить и в блоке guard тоже
@fedorlosev616
@fedorlosev616 4 жыл бұрын
Зашло отлично!
@mikhailov_al
@mikhailov_al 3 жыл бұрын
Спасибо огромное!
@vadim_polovoi
@vadim_polovoi Жыл бұрын
Спасибо за урок!
@dimaomelchenko1451
@dimaomelchenko1451 Жыл бұрын
Интересно послушать, даже имея не малый опыт, спасибо за контент)
@raulstudylab9041
@raulstudylab9041 4 жыл бұрын
всё очень понравилось!
@magomedn2057
@magomedn2057 2 жыл бұрын
Большое спасибо!
@aleksejsigaj1373
@aleksejsigaj1373 4 жыл бұрын
Спасибо!
@user-vo3eq9ni4w
@user-vo3eq9ni4w 9 ай бұрын
спасибо!
@dmitry3881
@dmitry3881 4 жыл бұрын
Все ок, все понравилось) Когда сказал "кровь из глаз, но вы же хотели примеров", конечно лучше так и с примерами. Потому, что я представить не могу, как бы мы(новички) все это делали сами с теми же фотками. А сейчас все очень даже становится на свои места
@mak_whisk
@mak_whisk 2 жыл бұрын
Спасибо
@user-mm2yi2qm6d
@user-mm2yi2qm6d 4 жыл бұрын
спасибо
@araapoyan2814
@araapoyan2814 2 жыл бұрын
Very cool!!!!
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
Куда присоединиться: 1.Наше сообщество в вк(добаляемся к более 3,5 тыс) = vk.com/theswiftdevelopers 2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 1,500 тыс) - t.me/joinchat/BAn0BkLMGrfpDYy2cnysNg p.s Домашние задание: смотрите в группах! Если все понравилось ты знаешь что делать;) Ставь лайк и пиши комент! :)
@user-xk4mg2oh9m
@user-xk4mg2oh9m 2 жыл бұрын
Есть ли видео где более подробно описываются @escaping замыкания?
@r00t67
@r00t67 2 жыл бұрын
Ещё стоит images.append(image1) защитить семафором т.к. запись в шаред ресурс
@bejan6622
@bejan6622 Жыл бұрын
Огромное спасибо за уроки, но есть вопрос потому, что на данный момент выходит так что в урлсессии выходит быстрее почему-то одновременно. Возможно подскажете почему так
@07shama
@07shama 4 жыл бұрын
Спасибо, знал бы это раньше - не стал бы связываться с SDWebImage
@user-xc3wt2il5s
@user-xc3wt2il5s 4 жыл бұрын
SD кэширует в добавок и тебе не пришлось благодаря этому использовать для кэша картинок нсКэш
@saffin
@saffin 4 жыл бұрын
Хорошо бы скачать файлы с кодом этих уроков по многопоточности. Чтоб подлядывать если что туда. Где можно их достать???
@user-wy7qh8mj1p
@user-wy7qh8mj1p 5 жыл бұрын
Получается этот Нотифай только для уведомления , что в потоке все отработало ? Больше не чего ?
@kurenkovalex7578
@kurenkovalex7578 4 жыл бұрын
товарищи, кто знает, подскажите в чем смысл такого метода загрузки тех же изображений? по сути делая блоки enter() и leave() мы сериализуем задачи диспатч группы. Получается, что загрузка, а затем и последующая запись в массив картинок идет по порядку, т.е. аналогично тому, что мы бы выполняли все эти 4 задачи синхронно. Суть получается только в том, что приходит notify о том, что группа была загружена. и по этому нотифаю мы кладем картинки на imageview. Но в чем разница, между этим, и созданием, например 4ех DispatchWorkItem. которые будут выполняться асинхронно. каждый по отдельности (в отдельном потоке например), а по загрузке изображения внутри айтема делать нотифай, по которому класть картинку в массив, затем увеличивать какойнибудь кайнтер на 1 и затем, когда каунтер дойдет до 4ех, грузить картинки в imageView. получается метод с 4мя айтемами будет, по идее, работать быстрее в 4 раза, потому что загрузку мы будем осуществлять параллельно, а не последовательно.
@S1a1n1y1a
@S1a1n1y1a 3 жыл бұрын
Думаю для контроля, по-больше степени. Ведь если две картинки загрузятся одновременно например, то на момент записи по одному уведомлению потеряется второе и все трах бабах... Но это только мысли вслух
@jandeveloper
@jandeveloper 5 жыл бұрын
Все супер! Но у меня путаница между asyns, sync, serial, concurrent, global. Не могу понять...
@theswiftdevelopers1301
@theswiftdevelopers1301 5 жыл бұрын
вернись к первому уроку и практикуйся
@riddik18
@riddik18 5 жыл бұрын
ну ты и смешной))), ты же кричал тут и доставал автора давай next next next, я раньше изучал, я все это знаю и тд, и тут выясняется что ты ничего не знаешь)
@mikhailov_al
@mikhailov_al 3 жыл бұрын
@@riddik18 ахах)
@dmitry3881
@dmitry3881 4 жыл бұрын
Как я понимаю в настоящей работе уже все так и происходит. Только, наверное через коллекшн вью, чтобы ячейки еще добавлялись автоматом. А так мы все это зашиваем под капот private, а заказчик( у него например интернет магазин), уже сам просто удаляет и добавляет ссылки на свои товары. Почти так?)
@gummibarchen1372
@gummibarchen1372 4 жыл бұрын
Жаль материал 2018 года
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
ENUM , да вроде еще работает
@gummibarchen1372
@gummibarchen1372 4 жыл бұрын
The Swift Developers я имел ввиду сам канал многое старое , а так это первое место где я всегда беру знания по Свифт . Спасибо
@sanchezcodez9359
@sanchezcodez9359 Жыл бұрын
Спасибо за труд, сенсей! Домо Аригато!
@rauankoshkinbayev1506
@rauankoshkinbayev1506 4 жыл бұрын
Спасибо !
Multithreading в swift с нуля:  урок 13 - GCD Dispatch Barrier
14:39
Dependency Injection
15:31
SwiftBook
Рет қаралды 15 М.
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 9 МЛН
Дибала против вратаря Легенды
00:33
Mr. Oleynik
Рет қаралды 4,4 МЛН
Luck Decides My Future Again 🍀🍀🍀 #katebrush #shorts
00:19
Kate Brush
Рет қаралды 8 МЛН
Must-have gadget for every toilet! 🤩 #gadget
00:27
GiGaZoom
Рет қаралды 12 МЛН
You hate DispatchQueue.main.async { } ? Good news, @MainActor killed it ☠️
11:51
Swift. Dependency Injection Основы
34:24
Программирование - интерес жизни
Рет қаралды 369
How use async and await
17:38
SwiftSimple
Рет қаралды 1,3 М.
View и Layer в чем разница | SWIFT
8:25
Swift Magic
Рет қаралды 3 М.
Caching images
11:41
SwiftBook
Рет қаралды 7 М.
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 9 МЛН