Multithreading в swift с нуля: урок 13 - GCD Dispatch Barrier

  Рет қаралды 6,813

The Swift Developers

The Swift Developers

Күн бұрын

Пікірлер: 32
@leonif1
@leonif1 6 жыл бұрын
Как только темы по сложнее - сразу лайков по-меньше:), спасибо. Все понятно объяснили!
@magomedn2057
@magomedn2057 2 жыл бұрын
Большое спасибо за твою работу!
@MegaDigri
@MegaDigri 6 жыл бұрын
Очень полезно, особенно в работе с URLSession 🔝
@mikhailrosl7706
@mikhailrosl7706 5 ай бұрын
чем отличается от семафора с выставленным пропуском на единицу - так и не понял(
@enzo0508
@enzo0508 4 жыл бұрын
А зачем вызывать чтение массива синхронно, если есть барьер? Ведь барьер останавливает все запросы, синхронные и асинхронные? На чтение данных разве нужно накладывать ограничения кроме барьера во время записи?
@r00t67
@r00t67 3 жыл бұрын
На самом деле я также подумал и даже постави лайк, но там ситуация такая, что если вызывать async, то у нас return будет срабатывать не дожидаясь когда отработает async кложура (result = self._elements). Я потестил у меня получается следующий результат. При таком коде var elements: [Element] { var result: [Element] = [] queue.async { result = self._elements } return result } На принте RaceCondition
@r00t67
@r00t67 3 жыл бұрын
А вот при таком коде, даже raceCondition не происходит, постоянно принтиться пустой массив var elements: [Element] { var result: [Element] = [] queue.async { [weak self] in guard let self = self else { return } result = self._elements } return result }
@andreifokin311
@andreifokin311 Жыл бұрын
К сожалению, есть огрехи в данном подходе. на 14:05 посмотрите в консоль.
@ВладСтрашинский-м2т
@ВладСтрашинский-м2т 2 жыл бұрын
Очень толково 👍
@mak_whisk
@mak_whisk 3 жыл бұрын
Спасибо
@zslavman
@zslavman 6 жыл бұрын
Поясните пожалуйста такую вещь, возможно и у других такой вопрос возникнет: метод DispatchQueue.concurrentPerform(iterations: 10) запускает свое замыкание, в данном случае это self.array.append(value), в параллельном потоке. Внутри же самого метода append(_ value:T) так же идет запуск уже в другом параллельном потоке. Вопрос - как это понимать? Это некий вложенный параллельный поток??
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
вы тут работаете с очередями система сама решает сколько потоков парралельно открывать
@zslavman
@zslavman 6 жыл бұрын
@@theswiftdevelopers1301 понял, спасибо!
@shurale85
@shurale85 2 жыл бұрын
уточните, пожалуйста, зачем делать конарент очередь, если запись идет через барьер? чтобы чтение ускорить? Делал в ТЗ массив как Ваш, у оценщиков возник такой вопрос,
@gabibli
@gabibli 5 ай бұрын
Да, чтобы ускорить чтение
@jandeveloper
@jandeveloper 6 жыл бұрын
А будут ли уроки по Opertaion?
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
пока не знаю
@TheNeur0
@TheNeur0 4 жыл бұрын
У меня в playground в последнем примере с SafeArray каждый раз разный результат, количество элементов всегда 10, но порядок разный.
@VladimirKim-cl3rh
@VladimirKim-cl3rh Жыл бұрын
в concurrentPerform всегда будет параллельная запись в массив, как не крути, название говорит само за себя
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
Куда присоединиться: 1.Наше сообщество в вк(добаляемся к более 3,5 тыс) = vk.com/theswiftdevelopers 2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 1,500 тыс) - t.me/joinchat/BAn0BkLMGrfpDYy2cnysNg p.s Домашние задание: смотрите в группах! Если все понравилось ты знаешь что делать;) Ставь лайк и пиши комент! :)
@zslavman
@zslavman 6 жыл бұрын
т.е., то что в замыкании queue.async(flags: .barrier) то и будет защищено от одновременной записи/чтения с разных потоков?
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
да
@Younkin
@Younkin 2 жыл бұрын
time 14:06 все у нас хорошо, но что-то пошло не так))))
@sanchezcodez9359
@sanchezcodez9359 2 жыл бұрын
Спасибо!
@7Burnst
@7Burnst 6 жыл бұрын
Добрый день. Видеоуроки еще выходят, классно)) В выходные пересмотрю все ваши ролики, но сейчас интересует вопрос о том, как дергать С из Swift. У меня есть предложение темы урока: UnsafePointers - что это, виды и как это использовать. Не зная Swift/Objective-C и истории их развития как-то сложно пробираться в эту сторону. Было бы здорово, если бы вы дополнительно рассказали о том, как правильно подключить статическую библиотеку non-fat архитектуры arm64 к проекту приложения под iOS, в Xcode слишком много настроек, пока не разобрался с этим вопросом. И да, большое спасибо за вашу работу))
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
спасибо но мне это не интерестно
@matthewkraev
@matthewkraev 6 жыл бұрын
Евгений, огромное спасибо за уроки! Очень хорошо обучаете! Хотелось бы 2 момента уточнить... Когда воспроизвел ваш код у себя, не всегда массив выводится правильно, иногда немного перемешивается несколько цифр... Это критично? Можно ли какао сделать чтобы они приходили по порядку? и второй вопрос, будет ли может в каком то уроке использование Label, часто их используем но при этом я так понимаю за счет них можно как то работать с этими очередями.. Будет ли какой то урок где вы покажете пример? P.S. Еще раз огромное спасибо за Ваш труд!
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
то что перемешиваеться не страшно главное что б все элементы пришли
@ОлегНерж
@ОлегНерж 6 жыл бұрын
а чево вы не прилагаете кодик к видикам ? )
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
прилагаю если включить экран то его станет видно)
@leonif1
@leonif1 6 жыл бұрын
АХАХАХ
@ОлегНерж
@ОлегНерж 6 жыл бұрын
@@theswiftdevelopers1301 пришлось так и сделать
Multithreading в swift с нуля:  урок 14 - GCD Dispatch Source
9:03
The Swift Developers
Рет қаралды 4,4 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
Учимся составлять сопроводительное письмо
6:01
SwiftUI c нуля: урок 1 - Alert & ActionSheet, переход с UIKit
22:03
SwiftUI c нуля: урок 8 - TabView, @Binding, ZStack
22:01
The Swift Developers
Рет қаралды 3,6 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН