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

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

The Swift Developers

The Swift Developers

Күн бұрын

Пікірлер: 32
@magomedn2057
@magomedn2057 2 жыл бұрын
Большое спасибо за твою работу!
@leonif1
@leonif1 6 жыл бұрын
Как только темы по сложнее - сразу лайков по-меньше:), спасибо. Все понятно объяснили!
@ВладСтрашинский-м2т
@ВладСтрашинский-м2т 2 жыл бұрын
Очень толково 👍
@MegaDigri
@MegaDigri 6 жыл бұрын
Очень полезно, особенно в работе с URLSession 🔝
@TheNeur0
@TheNeur0 4 жыл бұрын
У меня в playground в последнем примере с SafeArray каждый раз разный результат, количество элементов всегда 10, но порядок разный.
@VladimirKim-cl3rh
@VladimirKim-cl3rh Жыл бұрын
в concurrentPerform всегда будет параллельная запись в массив, как не крути, название говорит само за себя
@mak_whisk
@mak_whisk 3 жыл бұрын
Спасибо
@andreifokin311
@andreifokin311 Жыл бұрын
К сожалению, есть огрехи в данном подходе. на 14:05 посмотрите в консоль.
@enzo0508
@enzo0508 4 жыл бұрын
А зачем вызывать чтение массива синхронно, если есть барьер? Ведь барьер останавливает все запросы, синхронные и асинхронные? На чтение данных разве нужно накладывать ограничения кроме барьера во время записи?
@r00t67
@r00t67 2 жыл бұрын
На самом деле я также подумал и даже постави лайк, но там ситуация такая, что если вызывать async, то у нас return будет срабатывать не дожидаясь когда отработает async кложура (result = self._elements). Я потестил у меня получается следующий результат. При таком коде var elements: [Element] { var result: [Element] = [] queue.async { result = self._elements } return result } На принте RaceCondition
@r00t67
@r00t67 2 жыл бұрын
А вот при таком коде, даже raceCondition не происходит, постоянно принтиться пустой массив var elements: [Element] { var result: [Element] = [] queue.async { [weak self] in guard let self = self else { return } result = self._elements } return result }
@jandeveloper
@jandeveloper 6 жыл бұрын
А будут ли уроки по Opertaion?
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
пока не знаю
@sanchezcodez9359
@sanchezcodez9359 Жыл бұрын
Спасибо!
@mikhailrosl7706
@mikhailrosl7706 2 ай бұрын
чем отличается от семафора с выставленным пропуском на единицу - так и не понял(
@7Burnst
@7Burnst 6 жыл бұрын
Добрый день. Видеоуроки еще выходят, классно)) В выходные пересмотрю все ваши ролики, но сейчас интересует вопрос о том, как дергать С из Swift. У меня есть предложение темы урока: UnsafePointers - что это, виды и как это использовать. Не зная Swift/Objective-C и истории их развития как-то сложно пробираться в эту сторону. Было бы здорово, если бы вы дополнительно рассказали о том, как правильно подключить статическую библиотеку non-fat архитектуры arm64 к проекту приложения под iOS, в Xcode слишком много настроек, пока не разобрался с этим вопросом. И да, большое спасибо за вашу работу))
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
спасибо но мне это не интерестно
@zslavman
@zslavman 5 жыл бұрын
Поясните пожалуйста такую вещь, возможно и у других такой вопрос возникнет: метод DispatchQueue.concurrentPerform(iterations: 10) запускает свое замыкание, в данном случае это self.array.append(value), в параллельном потоке. Внутри же самого метода append(_ value:T) так же идет запуск уже в другом параллельном потоке. Вопрос - как это понимать? Это некий вложенный параллельный поток??
@theswiftdevelopers1301
@theswiftdevelopers1301 5 жыл бұрын
вы тут работаете с очередями система сама решает сколько потоков парралельно открывать
@zslavman
@zslavman 5 жыл бұрын
@@theswiftdevelopers1301 понял, спасибо!
@shurale85
@shurale85 2 жыл бұрын
уточните, пожалуйста, зачем делать конарент очередь, если запись идет через барьер? чтобы чтение ускорить? Делал в ТЗ массив как Ваш, у оценщиков возник такой вопрос,
@gabibli
@gabibli 3 ай бұрын
Да, чтобы ускорить чтение
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
Куда присоединиться: 1.Наше сообщество в вк(добаляемся к более 3,5 тыс) = vk.com/theswiftdevelopers 2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 1,500 тыс) - t.me/joinchat/BAn0BkLMGrfpDYy2cnysNg p.s Домашние задание: смотрите в группах! Если все понравилось ты знаешь что делать;) Ставь лайк и пиши комент! :)
@Younkin
@Younkin Жыл бұрын
time 14:06 все у нас хорошо, но что-то пошло не так))))
@matthewkraev
@matthewkraev 6 жыл бұрын
Евгений, огромное спасибо за уроки! Очень хорошо обучаете! Хотелось бы 2 момента уточнить... Когда воспроизвел ваш код у себя, не всегда массив выводится правильно, иногда немного перемешивается несколько цифр... Это критично? Можно ли какао сделать чтобы они приходили по порядку? и второй вопрос, будет ли может в каком то уроке использование Label, часто их используем но при этом я так понимаю за счет них можно как то работать с этими очередями.. Будет ли какой то урок где вы покажете пример? P.S. Еще раз огромное спасибо за Ваш труд!
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
то что перемешиваеться не страшно главное что б все элементы пришли
@zslavman
@zslavman 5 жыл бұрын
т.е., то что в замыкании queue.async(flags: .barrier) то и будет защищено от одновременной записи/чтения с разных потоков?
@theswiftdevelopers1301
@theswiftdevelopers1301 5 жыл бұрын
да
@ОлегНерж
@ОлегНерж 6 жыл бұрын
а чево вы не прилагаете кодик к видикам ? )
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
прилагаю если включить экран то его станет видно)
@leonif1
@leonif1 6 жыл бұрын
АХАХАХ
@ОлегНерж
@ОлегНерж 6 жыл бұрын
@@theswiftdevelopers1301 пришлось так и сделать
Multithreading в swift с нуля:  урок 14 - GCD Dispatch Source
9:03
The Swift Developers
Рет қаралды 4,4 М.
Trick-or-Treating in a Rush. Part 2
00:37
Daniel LaBelle
Рет қаралды 45 МЛН
What type of pedestrian are you?😄 #tiktok #elsarca
00:28
Elsa Arca
Рет қаралды 13 МЛН
Обязательный минимум для начинающего программиста 1С стажера
17:28
Алексей Иванов 1С программист
Рет қаралды 1,3 М.
This is the Only Right Way to Write React clean-code - SOLID
18:23
7 Лет Опыта в IT | Что я Понял?
19:56
Vlad Mishustin
Рет қаралды 221 М.
Что такое антипаттерны?
12:19
Merion Academy
Рет қаралды 46 М.
Trick-or-Treating in a Rush. Part 2
00:37
Daniel LaBelle
Рет қаралды 45 МЛН