undefined

Задачи на «wait-notify-notifyAll»

Java Multithreading
7 уровень , 9 лекция
Доступна
Задачи на «wait-notify-notifyAll» - 1

— Привет, Амиго!

undefined
16
Задача
Java Multithreading, 7 уровень, 9 лекция
Недоступна
Producer–consumer
В классе TransferObject расставь вызовы методов wait/notify/notifyAll, чтобы обеспечить последовательное создание и получение объекта. В методах run классов ConsumerTask и ProducerTask создай необходимые synchronized блоки. Ожидаемый вывод: ... Put: M Got: M Put: N Got: N Put: K Got: K ... где M, N,
undefined
16
Задача
Java Multithreading, 7 уровень, 9 лекция
Недоступна
Расставь wait-notify
Расставь wait-notify. Пример вывода: Thread-0 MailServer received: [Person [Thread-1] wrote an email 'AAA'] in 1001 ms after start
undefined
16
Задача
Java Multithreading, 7 уровень, 9 лекция
Недоступна
CountDownLatch
Дана стандартная реализация методологии wait-notify. Почитай про CountDownLatch и перепиши тело метода someMethod используя поле latch. Весь лишний код удали из класса.
Комментарии (65)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Виталий Уровень 31 Минск Белоруссия
5 июля 2021
Илья Уровень 30 Дзержинск
23 февраля 2021
Коллеги, может кто знает какие-нибудь курсы чисто по многопоточности? Ибо на JR многопоточность - полная лажа, практически любая информация из инета куда более подробна и качественна, чем здесь. До многопоточки я только хвалил и всем советовал JR, но начиная с неё это полный трэш. Надеюсь здесь когда-нибудь произойдут кардинальные изменения и учеба будет действительно приносить пользу.
Andrei Po Уровень 32
13 февраля 2021
последняя задача бессмысленна, только запутает тех, кто впервые сталкивается с CountDownLatch, так как, как много писали раньше, правильнее если await() и countdown() вызываются из разных потоков. так что пример из программы не имеет практической ценности, поскольку await() должен останавливать исполнение потока, пока не произойдёт обратный отсчёт событий необходимым количеством раз вызовов метода countdown().
SerB Уровень 40 Екатеринбург Россия
27 января 2021
Объясните, зачем в задаче CountDownLatch вызывать метод latch.countDown()? Он же должен вызываться из какого то другого метода, когда isWaitingForValue = false? Или я что-то недопонял.
Vladimir “Rain_Senpai1995” Soldatenko Уровень 35 Киев Украина
13 декабря 2020
После этих задач, я еще больше понял... что вообще ничего не понял.
Валентин Уровень 41 Санкт-Петербург
31 октября 2020
вопрос по задаче Producer–consumer, зачем Атомик класс сделали volatile?
Вадим Волков Уровень 35 Могилев Беларусь
27 октября 2020
Что хотелось бы добавить. Если в синхронизированном блоке после вызова метода notify() идёт какой-то код, то этот код будет выполняться до конца блока, а уж потом другая нить проснётся и продолжит свою работу. Чтобы убедиться - вставьте в задаче после вызова метода notify(), например, это:

System.out.println("Working after method notify()");
Юрий Уровень 35 Москва Россия
17 октября 2020
Иван Дормаковский Уровень 38 Гомель Беларусь
10 апреля 2020
Справочник по синхронизаторам java.util.concurrent.* С примерами: https://habr.com/ru/post/277669/
Sekator Уровень 41 Староконстантинов Украина
27 января 2020
непосредственное применение методов wait и notify представляет собой аналог программирования на “параллельном языке ассемб­ лера” по сравнению с высокоуровневым языком, предоставленным j ava . util. concurrent. Причина использовать wait и notify в новом коде встречается редко (если встречается вообще). Если вы поддерживаете код, использующий вызовы wait и notify, убедитесь, что wait всегда вызыва­ ется в цикле while с использованием стандартной идиомы. В общем случае следует предпочитать вызов метода notifyAll методу notify. Effective java 402p