В 6 примере краш-то совсем не из-за get/set instance.name. На 48:56 же перешли на истинную причину - генерация строки. Но проигнорировали её и пошли "синхронизировать". Синхронизация нужна для решения несколько другой проблемы в контексте данного примера. В данном случае, скорее всего, произошло переполнение стека и связанные с этим проблемы. Насколько помнится, размер стека main thread 8 Mb, background thread 512 Kb. Что стоит с таким подходом его забить, если на каждую строку одних compactMap 24 штуки вызывается с random на длинной строке? С length
Сложилось впечатление что доклад о том как потыкать пальцес GCD. Докладчик просто копирует запускает примеры, даже не объясняет почему так и почему такое поведение ожидаемо. Наверное надо или лучше готовиться или почитать больше про GCD.
@@trueman8348 не совсем понимаю, что такое абстрактная задача. Насколько я понял, мадам хотела преподать знания о GCD и о том, как он работает. Признав правильным ответ "яблоко последнее", а не "неизвестно", она должна была доказать, что десять вызовов print() в global-e не успеют выполниться, до того, как выполнится print() в main thread.
@@trueman8348 а вызывать в качестве "доказательства" этот код несколько раз -- это вообще глупость. Потому что вызывайте код хоть 100 раз -- это ничего не доказывает
Спасибо ребят, быстро время пролетело досмотрел однако)
В 6 примере краш-то совсем не из-за get/set instance.name.
На 48:56 же перешли на истинную причину - генерация строки. Но проигнорировали её и пошли "синхронизировать". Синхронизация нужна для решения несколько другой проблемы в контексте данного примера.
В данном случае, скорее всего, произошло переполнение стека и связанные с этим проблемы. Насколько помнится, размер стека main thread 8 Mb, background thread 512 Kb. Что стоит с таким подходом его забить, если на каждую строку одних compactMap 24 штуки вызывается с random на длинной строке? С length
1:13:06 на 15 строчке не должно быть semaphore вместо concurrentQueue ?
да уж, надо проверять же.
unspecified - по умолчанию
DispatchQueue(label: "queue").qos == .unspecified // true
Сложилось впечатление что доклад о том как потыкать пальцес GCD. Докладчик просто копирует запускает примеры, даже не объясняет почему так и почему такое поведение ожидаемо. Наверное надо или лучше готовиться или почитать больше про GCD.
На 12-ой минуте она уже не права. И если она берется преподавать, то правильный ответ был бы "не известно". Вообще это ужасно
@@trueman8348 не совсем понимаю, что такое абстрактная задача. Насколько я понял, мадам хотела преподать знания о GCD и о том, как он работает. Признав правильным ответ "яблоко последнее", а не "неизвестно", она должна была доказать, что десять вызовов print() в global-e не успеют выполниться, до того, как выполнится print() в main thread.
@@trueman8348 а вызывать в качестве "доказательства" этот код несколько раз -- это вообще глупость. Потому что вызывайте код хоть 100 раз -- это ничего не доказывает