Swift 5.5. Async/Await

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ม.ค. 2025

ความคิดเห็น • 22

  • @TolyanFikalis
    @TolyanFikalis 3 ปีที่แล้ว +7

    А почему в первом примере (с OperationQueue) не все овощи чистятся ?

  • @serhiis_
    @serhiis_ 3 ปีที่แล้ว +8

    Второй пример не корректен так как код выполняется последовательно, а не асинхронно.

  • @AdamTabiev
    @AdamTabiev 8 หลายเดือนก่อน

    Буду признателен, если будет выпущено еще одно видео на тему async/await с более простыми примерами. Спасибо

  • @Awarskiy
    @Awarskiy 3 ปีที่แล้ว +35

    Ну что за бред, ребята? У вас в итоге во втором примере нету параллельного выполнения. Овощи чистятся последовательно. А в первом примере сделали самую примитивную ошибку с потоко небезопасным обращением к памяти. Зачем пытаться рассказывать другим то, что сами не понимаете. А если понимаете, то зачем снимать такой бред? Почему качество контента так падает?

    • @VitaliyTver
      @VitaliyTver 3 ปีที่แล้ว

      Как исправить первый пример, чтобы он работал нормально? Не пойму никак.

    • @Awarskiy
      @Awarskiy 3 ปีที่แล้ว +2

      @@VitaliyTver блокировать вызов choppedVeggies.append(choppedVeggie) с помощью NSLock. Чтобы не было одновременной записи с разных потоков.

    • @popovd
      @popovd 3 ปีที่แล้ว +1

      @@VitaliyTver Я бы селал так:
      enum Vegetable: String{
      case tomato;
      case potato;
      }
      class ChoppingOperation: Operation{
      let vegetable: Vegetable;
      let duration: UInt32;
      init(vegetable: Vegetable) {
      self.vegetable = vegetable;
      self.duration = (1...14).randomElement() ?? 1;
      super.init();
      }
      override func main(){
      print("Начинаем резать \(self.vegetable.rawValue). Продолжительность \(self.duration) сек.");
      for _ in 0..= 10{
      item.cancel();
      }
      }
      workQueue.waitUntilAllOperationsAreFinished();

    • @ard708
      @ard708 3 ปีที่แล้ว

      +, пример зашквар

    • @sk000rp
      @sk000rp 2 ปีที่แล้ว

      @@VitaliyTver через мьютекс добавлять в массив элементы. Например, через NSLock.

  • @AntonTheRunner
    @AntonTheRunner 3 ปีที่แล้ว +8

    Так же можно было использовать старый добрый Dispatch Group

  • @yegorsk97
    @yegorsk97 3 ปีที่แล้ว

    Думаю, самое оно под сетевые запросы и под запросы к хранилищам данных

  • @MetaFishing
    @MetaFishing 3 ปีที่แล้ว +2

    Спасибо ! Все понятно и ясно, приятно слушать ))

  • @mr.javeline4526
    @mr.javeline4526 ปีที่แล้ว

    все неплохо, но звук заводской столовой на фоне - минус

  • @frrrost1504
    @frrrost1504 2 ปีที่แล้ว

    Я думал 8 минут что то постельное делается а там утечка памяти) советую после 8 минуты смотреть

  • @artem_astapov
    @artem_astapov 3 ปีที่แล้ว +1

    А почему мы последние строчки кода в async запускаем?

    • @kav04
      @kav04 3 ปีที่แล้ว +1

      @Keira Errinwright сказала как отрезала ) с безапелляционостью невежды

    • @jackdanyal4329
      @jackdanyal4329 3 ปีที่แล้ว +1

      @Keira שער האבדון а можешь указать где бы async не был сахаром над более низкой реализацией асинхронности?)) хотя бы один язык) никто не станет с нуля писать систему многопоточности, когда все и так работает и достаточно просто создать юзерфрендли обертку.

  • @try_catch_error
    @try_catch_error 3 ปีที่แล้ว +1

    Было бы круто, если бы Apple придумали такое же на основе декларативной парадигмы, по типу Function Builder.

    • @volkov000ify
      @volkov000ify 3 ปีที่แล้ว

      Одна такая конструкция уже есть - AsynchImage()

  • @joshacosta4113
    @joshacosta4113 3 ปีที่แล้ว +1

    claro como el agua, y eso que no hablo ruso

  • @Damian-lt9vx
    @Damian-lt9vx 3 ปีที่แล้ว +2

    На 8.43 возмужал 😅