Size: a a a

2020 July 06

IA

Ivan Akulov in SwiftBook
задавали вопрос прямо один-в-один
источник

IA

Ivan Akulov in SwiftBook
читайте следующие сообщения после того, на который ссылку дал
источник

К

Кирилл in SwiftBook
Ivan Akulov
читайте следующие сообщения после того, на который ссылку дал
Спасибо
источник

IA

Ivan Akulov in SwiftBook
Кирилл
Спасибо
:)
источник

GZ

Gleb Zheglov Ⓜ️ in SwiftBook
Господа  у меня есть вопросы по GCD:

1. Если мы помещаем задание на очередь с помощью метода sync, то в данном случае, текущий поток из которого было добавлено задание в очередь блокируется до завершения выполнения данного задания.

2. Если мы помещаем задание на очередь с помощью метода async, то текущий поток в данном случае не блокируется

3. Если для одной и той же последовательной очереди (Serial Queue) мы добавлям два задания с помощью метода async, то они выполнятся по принципу FIFO (пока не выполнится помещенное в очередь задание 1, задание 2 не начнет свое выполнение)

Верны ли данные суждения ?
источник

GZ

Gleb Zheglov Ⓜ️ in SwiftBook
Буду благодарен если поправите
источник

AB

A B in SwiftBook
Gleb Zheglov Ⓜ️
Господа  у меня есть вопросы по GCD:

1. Если мы помещаем задание на очередь с помощью метода sync, то в данном случае, текущий поток из которого было добавлено задание в очередь блокируется до завершения выполнения данного задания.

2. Если мы помещаем задание на очередь с помощью метода async, то текущий поток в данном случае не блокируется

3. Если для одной и той же последовательной очереди (Serial Queue) мы добавлям два задания с помощью метода async, то они выполнятся по принципу FIFO (пока не выполнится помещенное в очередь задание 1, задание 2 не начнет свое выполнение)

Верны ли данные суждения ?
верно
источник

GZ

Gleb Zheglov Ⓜ️ in SwiftBook
A B
верно
Спасибо, просто немного чет засомневался
источник

G

Georgy in SwiftBook
Кирилл
Да, там есть курсы , а есть вебинары , хотел узнать проходил ли кто нибудь их платно и каков результат
Проходил вебинары, кажется, самый первый выпуск. Вёл Денис. Было круто, много объяснил того, что было понятно только интуитивно.
Не знаю,  кто ведёт сейчас, но Денис очень крутой препод.
источник

G

Georgy in SwiftBook
Gleb Zheglov Ⓜ️
Спасибо, просто немного чет засомневался
А я вот что-то сомневаюсь почему-то.. ты их синхронно в асинхронном добавляешь? Или асинхронно раз, потом асинхронно два?
источник

GZ

Gleb Zheglov Ⓜ️ in SwiftBook
Georgy
А я вот что-то сомневаюсь почему-то.. ты их синхронно в асинхронном добавляешь? Или асинхронно раз, потом асинхронно два?
Без каких либо вложенностей пока что рассматриваю

Просто код идет сплошняком сверху вниз

-----------------------------

print("Print for Main queue")

serialQueue.sync {
   print("Task 1 on Serial Queue")
}

serialQueue.sync {
   print("Task 2 on Serial Queue")
}

print("Print for Main queue")

Итог: Получим последовательное выполнение кода сверху вниз, так как при вызове sync, текущая очередь блокируется до завершения вызванного блока

---------------------

print("Print for Main queue")

serialQueue.async {
   print("Task 1 on Serial Queue")
}

serialQueue.async {
   print("Task 2 on Serial Queue")
}

print("Print for Main queue")

Итог: Основной поток из которого были вызваны методы async, блокироваться не будет, и если говорить конкретно за serialQueue, абстрагируясь от основной очереди, то в ней задания будут выполнятся последовательно несмотря на то что мы их поместили с помощью async (т.к. очередь последовательная, а не concurrent)
источник

GZ

Gleb Zheglov Ⓜ️ in SwiftBook
Как то так
источник

G

Georgy in SwiftBook
Gleb Zheglov Ⓜ️
Как то так
Да, всё верно.. теперь и у меня нет сомнений..))
Вот хороший тред

https://stackoverflow.com/questions/49249654/in-gcd-are-serial-queue-synchronous-by-asynchronous-operation-swift
источник

G

Georgy in SwiftBook
Ох, как приятно подумать над чем-то кроме передачи инпута на предыдущий контроллер
источник

GZ

Gleb Zheglov Ⓜ️ in SwiftBook
спасибо, сейчас чекну
источник

AB

A B in SwiftBook
Gleb Zheglov Ⓜ️
Без каких либо вложенностей пока что рассматриваю

Просто код идет сплошняком сверху вниз

-----------------------------

print("Print for Main queue")

serialQueue.sync {
   print("Task 1 on Serial Queue")
}

serialQueue.sync {
   print("Task 2 on Serial Queue")
}

print("Print for Main queue")

Итог: Получим последовательное выполнение кода сверху вниз, так как при вызове sync, текущая очередь блокируется до завершения вызванного блока

---------------------

print("Print for Main queue")

serialQueue.async {
   print("Task 1 on Serial Queue")
}

serialQueue.async {
   print("Task 2 on Serial Queue")
}

print("Print for Main queue")

Итог: Основной поток из которого были вызваны методы async, блокироваться не будет, и если говорить конкретно за serialQueue, абстрагируясь от основной очереди, то в ней задания будут выполнятся последовательно несмотря на то что мы их поместили с помощью async (т.к. очередь последовательная, а не concurrent)
Это плохой тест, print очень быстрая операция, лучше добавить for до 1000 в каждую задачу, ну и print start / print end
источник

GZ

Gleb Zheglov Ⓜ️ in SwiftBook
A B
Это плохой тест, print очень быстрая операция, лучше добавить for до 1000 в каждую задачу, ну и print start / print end
Ок
источник

G

Georgy in SwiftBook
A B
Это плохой тест, print очень быстрая операция, лучше добавить for до 1000 в каждую задачу, ну и print start / print end
Там на СО хорошо вроде написано
источник

DA

Dmitry Alekseev in SwiftBook
а как можно тормознуть сплэш искусственно, мне кажется, что там лаг с отрисовкой, но на девайсе не успеваю посмотреть
источник

AS

Anton Stremovskiy in SwiftBook
A B
Это плохой тест, print очень быстрая операция, лучше добавить for до 1000 в каждую задачу, ну и print start / print end
можно сделать sleep тогда будет четко видно выполнение потоков
источник