Открытый вебинар «Многопоточность в Java. По ту сторону от synchronized-notifyAll»

    Всем привет!

    Мы продолжаем давать открытые уроки по нашему курсу «Разработчик Java». Сегодня мы хотим поделиться второй частью посвящённой многопоточности. Если в первой части рассматривались базисы многопоточности плюс был написан Ping-Pong с применением synchronized-notifyAll, то в новой части уже идёт более углубленное изучение, а Ping-Pong переписали в разных вариациях уже без synchronized-notifyAll


    Ждём комментарии и вопрос, которые можно задать тут или зайти к Виталию на день открытых дверей.

    Отус

    274,00

    Профессиональные онлайн-курсы для разработчиков

    Поделиться публикацией
    Комментарии 2
      0
        0
        Не знаю каким образом можно тестировать многопоточку на двухядерке и как на видео отработали тесты, но второй способ с park не работает.
        Во-первых если его просто запустить, то он загоняет оба потока в park в среднем на 15 тысячах итераций на 8 ядерном камне.
        Во-вторый есть критичные действия, которые не находятся в критичной секции, в результате очень легко первый поток сетит мессадж, он рапарковывает второй поток, и убегает в первую секцию, но останавливается перед parkedThread.set. Второй поток начинает движение во вторую секцию, доходит до распарковывания первого потока, но он не видит в parkedThread ничего и тут же убегает в первую ветку ифа, где уже оба потока доходят до парковки без проблем и лочатся навсегда.
        И да для многопоточки все-таки нужно подтверждать корректность своих реализаций чем-нибудь наподобие jcstress

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое