Многопоточность: неопределённость, дедлоки, лайвлоки, callback hell и другие ужастики
Описание
— Что такое многопоточность и где она используется.
— Зачем исторически понадобилось распараллеливать вычисления.
— Какие физические ограничения процессоров позволяет обойти многопоточность
— Что такое concurrency, чем она отличается от многопоточности и какие преимущества даёт пользователям.
— Параллелизм и многопоточность (multithreading) — в чём разница?
— Почему работа с многопоточностью — это часто взрыв мозга.
— Что такое дедлок (deadlock) и лайвлок (livelock), как Java Memory Model от них спасает.
— Асинхронность: что это такое и чем отличается от многопоточности, как реализована в JavaScript. Async/await и "callback hell".
— Фреймворк RxJava и паттерн Observer.
— Почему нельзя просто взять и синхронизировать потоки?
— Инструменты для работы с многопоточностью в Java: synchronized, методы wait и notify, модуль concurrency, semafor и другие.
— «Kotlin — это Java здорового человека».
— Зависит ли работа с многопоточностью от аппаратной платформы и операционной системы.
— Как реализована работа с многопоточностью в разных языках программирования.
— Какие концепции, связанные с многопоточностью сейчас активно обсуждаются и внедряются.
Полезные ссылки
— Доклад Алексея Шипилёва про Java Memory Model https://www.youtube.com/watch?v=iB2N8aqwtxc
— Доклад Алексея Шипилёва «Близкие контакты JMM-степени» https://www.youtube.com/watch?v=C6b_dFtujKo&list=PLecCTjz_4ylyyvYExhPAzB4Mqn3Q_kEj6
— «Java Concurrency на практике», Гетц Б., Пайерлс Т., Ли Д. https://www.piter.com/collection/all/product/java-concurrency-na-praktike?ysclid=ln1hku5g47984729844
Гость. Алексей Ушаровский. Software Engineer в Oracle.
Стартовать в программировании вместе со Skillbox: skillbox.ru/code
Подписывайтесь, ставьте лайки, делитесь с друзьями и оставляйте комментарии!