Multithreading в swift с нуля: урок 3 - Synchronisation & Mutex

  Рет қаралды 11,648

The Swift Developers

The Swift Developers

Күн бұрын

Пікірлер: 29
@sashabravos
@sashabravos Жыл бұрын
Огромное спасибо за Ваш труд, за последние пол года пересмотрела очень много материалов и очень часто Ваши ролики спасали ситуацию. Всегда чётко, понятно, без воды и километровых пауз, очень структурировано и последовательно. На примере этого курса очень остро чувствуется разница, даже с первых роликов, буквально вчера закончила курс от Авито по многопоточности и это был тихий ужас. В общем, надеюсь, вы продолжаете обучать, потому что в сфере программирования - большая редкость так понятно доносить информацию. Ещё раз спасибо.
@iddqdsnegiri2170
@iddqdsnegiri2170 Жыл бұрын
Спасибо огромное, смотрел подлодку, но там конечно почти ничего не объясняют, здесь все четко и подробно... отдельное спасибо за 4К - на макбуке в худшем качестве смотреть это капец.
@aricks
@aricks 2 жыл бұрын
спасибо за урок, но вот если убрать из кода вызовы методов lock() и unlock() то собственно вывод будет ровно таким же. вы говорите что нужно разбираться до косточек, но этот же пример с массивом не разобрали, а просто показали что оно вот это выводит, магически
@raidenyamato
@raidenyamato Жыл бұрын
если в этом примере убрать анлок, результат тот же будет ничего не заблочится. так это вообще ни на что не влияет. разница будет только если вместо анлок, лок поставить, тогда массив сможет уже добавить вторую строку. это работает как задумывалось, если инициализировать этот мутекс вне класса, а потом добавить этот блок мутекса в клоужер перед вызовом массива, тогда да, второе срабатывание массива не сработает, без анлока
@m.d.2029
@m.d.2029 7 ай бұрын
Потому что все в одном (главном) потоке выполняется. Тут нет других потоков, чего тут блокировать и от чего? Пример совсем не показательный.
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
Куда присоединиться: 1.Наше сообщество в вк(добаляемся к более 3,5 тыс) = vk.com/theswiftdevelopers 2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 1,500 тыс) - t.me/joinchat/BAn0BkLMGrfpDYy2cnysNg p.s Домашние задание: смотрите в группах! Если все понравилось ты знаешь что делать;) Ставь лайк и пиши комент! :)
@ВикторПеливан
@ВикторПеливан 4 жыл бұрын
Мне Playground выдает warning на defer: ['defer' statement at end of scope always executes immediately; replace with 'do' statement to silence this warning]
@mak_whisk
@mak_whisk 3 жыл бұрын
Спасибо
@__terens666__5
@__terens666__5 3 жыл бұрын
большое вам спасибо
@arnoldvelichko9237
@arnoldvelichko9237 6 жыл бұрын
спасибо)
@raidenyamato
@raidenyamato Жыл бұрын
если в этом примере убрать анлок, результат тот же будет ничего не заблочится. так это вообще ни на что не влияет. разница будет только если вместо анлок, лок поставить, тогда массив сможет уже добавить вторую строку. это работает как задумывалось, если инициализировать этот мутекс вне класса, а потом добавить этот блок мутекса в клоужер перед вызовом массива, тогда да, второе срабатывание массива не сработает, без анлока на си class SaveThread { init() { } func someMethod(completion: () -> ()) { completion() } } var mutex = pthread_mutex_t() pthread_mutex_init(&mutex, nil) var array = [String]() let saveThread = SaveThread() saveThread.someMethod { pthread_mutex_lock(&mutex) print("test") array.append("1 thread") pthread_mutex_unlock(&mutex) } array.append("2 thread") причем почему то это так работает только в случае с си, на обжективе и это не работает, тут работает блок только если class SaveThread { init() { } func someMethod(completion: () -> ()) { completion() } } var mutex = NSLock() saveThread.someMethod { print("test") mutex.lock() array.append("1 thread") mutex.lock() } array.append("2 thread")
@RiadSultanov
@RiadSultanov Жыл бұрын
ничего из того что ты сказал не работает(
@raidenyamato
@raidenyamato Жыл бұрын
@@RiadSultanov у меня работало, иначе бы и не написал. Ты что-то не так понял или не так переписал Скопируй пример на си который. И там в методе сомМетод, попробуй менять лок на анлок и будет разница. Или просто его закоменть, предварительно вначале метода сделав лок и тоже лок останется
@kiryllll
@kiryllll Ай бұрын
С NSLock - lock() вызывается дважды: Calling the lock method twice on the same thread will lock up your thread permanently
@alexgrigoriev7133
@alexgrigoriev7133 3 жыл бұрын
👍
@TheZazatv
@TheZazatv 6 жыл бұрын
про семафору в дальнейшем будет?
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
да
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
NSLock это тоже симафор
@TheZazatv
@TheZazatv 6 жыл бұрын
спасибо)
@MsSkylife
@MsSkylife 6 жыл бұрын
Полезная ин-фа, но зачем в плейграунде мучаться? Можно же сделать примитивное приложение и в нем показывать, так и понятней всем будет)
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
так быстрее получаеться, народ просит не выше 15 мин уроки делать
@Architect_Mobile
@Architect_Mobile 6 жыл бұрын
Получается диспач - это вообще ерунда))) ?? Не какая не многопоточность ? Не понимаю
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
мы до диспечера дойдем дальше, можешь только без мата плиз?
@Architect_Mobile
@Architect_Mobile 6 жыл бұрын
Хорошо))
@m.d.2029
@m.d.2029 7 ай бұрын
Ну и шляпа!))) В этом коде все выполняется в одном (главном) потоке ,.. никаких других потоков мы не создаем.. зачем тут вообще мьютексы?? Что и от чего блокировать?? Тут ОДИН поток
@MegaDigri
@MegaDigri 6 жыл бұрын
🔋🔋🔋🔋🔋🔋🔋🔋🔋
@ЯрославГрицунь
@ЯрославГрицунь 6 жыл бұрын
4:04 безопасный будет safe
@Architect_Mobile
@Architect_Mobile 6 жыл бұрын
Не умничай) А то мои люди тебя найдут ))
@theswiftdevelopers1301
@theswiftdevelopers1301 6 жыл бұрын
Ярослав Грицунь , спасибо, я знаю. Когда спешишь уложиться в 15 мин получаються колизии)
Multithreading в swift с нуля:  урок 1 - Thread & Pthread
26:09
The Swift Developers
Рет қаралды 39 М.
How Strong is Tin Foil? 💪
00:25
Brianna
Рет қаралды 70 МЛН
How Much Tape To Stop A Lamborghini?
00:15
MrBeast
Рет қаралды 190 МЛН
When u fight over the armrest
00:41
Adam W
Рет қаралды 26 МЛН
Random Emoji Beatbox Challenge #beatbox #tiktok
00:47
BeatboxJCOP
Рет қаралды 64 МЛН
Combine. UIKit Controls Publisher
23:26
Программирование - интерес жизни
Рет қаралды 125
Apple is wrong!  Most people DO NOT need a new Mac!
11:39
Reboot Retro
Рет қаралды 174
Диспетчеризация в Swift.
34:56
Ildar Zalyalov
Рет қаралды 20 М.
15 ноября 2024 г.
9:34
Димон Димоныч
Рет қаралды 8
How Strong is Tin Foil? 💪
00:25
Brianna
Рет қаралды 70 МЛН