Java. Многопоточность. Урок 24. Condition.

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 พ.ย. 2024

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

  • @НикитаШалимо-т4д
    @НикитаШалимо-т4д ปีที่แล้ว +3

    Хорошее видео, продолжай в том же духе! Спасибо тебе за уроки!

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

    Супер пример получился!👍

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

      Большое спасибо!)

  • @АлександраКарабанова
    @АлександраКарабанова ปีที่แล้ว +1

    Отличный познавательный урок

  • @arenmkhoyan
    @arenmkhoyan 9 หลายเดือนก่อน +1

    Я так и до конца не понял зачем эти while а не if) Спасибо за уроки, супер видео

    • @vladzuev10
      @vladzuev10  9 หลายเดือนก่อน +3

      И Вам за комментарий!) Давайте представим, что у нас есть буфер и два потока(Thread-0 и Thread-1) потребляют элементы с этого буфера, а один(Thread-2) кладет элементы в наш буфер. Рассмотрим случай, когда буфер пуст и мы вызываем метод await внутри блока if. Пусть сначала поток Thread-0 пытается извлечь элемент из буфера. Он видит, что буфер пуст и вызывает метод await. Затем пусть поток Thread-1 пытается извлечь элемент из буфера. Он так же видит, что буфер пуст и вызывает метод await. Затем поток Thread-2 без проблем ложит элемент в наш буфер и будит ранее заблокированные потоки Thread-0 и Thread-1. Затем пусть отрабатывает поток Thread-0. Он извлекает элемент из нашего буфера, который положил поток Thread-2, и в этот момент буфер снова пуст. Но затем вполне возможно, что поток Thread-1 начнет свою работу с точки вызова метода await. Т.к. мы написали if вместо while, поток Thread-1 начнет извлекать элемент из пустого буфера из-за чего возникнет ошибка. Чтобы этого избежать, поток Thread-1 должен еще раз перепроверить, не пуст ли наш буфер снова. Именно поэтому и необходимо помещать вызов метода await в цикл while. Очень надеюсь, что ответил) Извиняюсь за долгий ответ) Что-то я проморгал Ваш комментарий)

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

    Очень крутые уроки!

    • @vladzuev10
      @vladzuev10  ปีที่แล้ว

      Спасибо большое!) Безумно приятно!)

  • @maksmolch
    @maksmolch ปีที่แล้ว

    Спасибо за уроки! Продолжай!!!

    • @vladzuev10
      @vladzuev10  ปีที่แล้ว

      Вам спасибо!)