Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией.
Мы помолвлены онлайн-курсы по программированию .
Я также преподаю курс «Скала для разработчиков Java» на платформе онлайн-обучения udemy.com (аналог Coursera/EdX).
хотелось бы услышать мнение сообщества
- Программы курса «Многоядерное программирование на Java»
- литература по курсу
), к каждой лекции дается расширенное задание, предназначенное для Java Junior/Middle.
Программа курса
Модуль №1: Между аппаратным обеспечением и математикой, примитивы- "железо"
- архитектура современных процессоров, кэши
- барьеры памяти, переупорядочение чтения/записи, протоколы согласованности кэша
- «математика»/Модель памяти Java
- Новый JMM – описание «под рукой»
- какие гарантии предоставляют Thread.start()/join(), Летучие, Final, CAS, lazySet, WeakCompareAndSet, классы из j.u.c?
- официальная спецификация Новый JMM: происходит до того, как граница, протокол обязательств
- примитивы/конструкции
- двойная проверка блокировки (сломанная), безопасная публикация
- синхронизированный+Object.wait()/notify()/notifyAll() — как использовать, какие гарантии, как это реализовано в HotSpot
- Давайте реализуем наши: алгоритм Деккера, алгоритм Петерсона, алгоритм Лампорта Бейкери.
- многопоточные коллекции
- BlockingQueue-s
- ConcurrentMap-s: ConcurrentHashMap, ConcurrentSkipListMap
- Структуры копирования при записи: CopyOnWriteArrayList, CopyOnWriteArraySet.
- «синхронизаторы»
- Блокировка, Условие, ReentrantLock, ReentrantReadWriteLock, Семафор
- CountDownLatch, CyclicBarrier, Exchanger, Phaser
- пул потоков + будущее
- Исполнители, ExecutorService, ThreadPoolExecutor, ScheduledExecutorService, ScheduledThreadPoolExecutor
- Callable, Future, чего не хватает j.u.c.Future
- ядро juc: AbstractQueuedSynchronizer + LockSupport
- внутреннее устройство j.u.c.AQS
- мы строим наши примитивы на j.u.c.AQS + LockSupport
- Платформа вилки/соединения
- решение задач в стиле рекурсивного параллелизма
- идиомы и общие задачи
- Fork/Join Framework – что под капотом
- Параллельные потоки
- Java 8 — работа с данными через java.util.Stream
- java.util.Stream.parallel() — что «под капотом»
- Неблокирующий алгоритм
- пакет j.u.c.atomic: AtomicXXX, AtomicXXXArray, AtomicXXXFieldUpdater, AtomicStampedReference, AtomicMarkableReference
- классификация: блокирующая, неблокирующая, без блокировки, без ожидания, без препятствий
- неблокирующие реализации базовых структур данных: стек, очередь, дек, хеш-таблица, древовидная карта.
- архитектуры передачи сообщений (Akka)
- библиотека Акка
- базовые шаблоны, типовые архитектуры
- Плюсы и минусы архитектур передачи сообщений
- Программная транзакционная память (Clojure)
- библиотека clojure.lang.*
- плюсы и минусы транзакционных архитектур памяти
- Постоянные структуры данных
- Плюсы и минусы постоянных структур данных
- постоянные реализации базовых структур данных: стек, очередь, дек, хеш-таблица, древовидная карта.
- библиотеки: clojure.lang.*, pcollections
Литература
Книги- Брайан Гетц и другие, «Параллелизм Java на практике»
- Даг Ли, «Параллельное программирование на Java: принципы и шаблоны проектирования»
- Морис Херлихи, Нир Шавит, «Искусство многопроцессорного программирования»
- Мартин Томпсон и др.
- Ульрих Дреппер, «Что должен знать каждый программист о памяти»
- Даг Ли, «Поваренная книга JSR-133 для авторов компиляторов»
- Брайан Гетц «Двойная проверка блокировки: умно, но сломано»
- Декларация «Двойная проверка блокировки нарушена»
- Джереми Мэнсон, Брайан Гетц, «Часто задаваемые вопросы по JSR 133 (модель памяти Java)»
- Даг Ли, «Поваренная книга JSR-133 для авторов компиляторов»
- Даг Ли, «Среда синхронизации java.util.concurrent»
- Даг Ли, «Java Fork/Join Framework»
- Мартин Томпсон «Механическая симпатия»
- Руслан Черемин, «Рабочие заметки»
Контакты
Я прохожу онлайн-обучение Java (здесь курсы программирования ) и опубликовать некоторые учебные материалы в рамках доработки Курс Java Core .Посмотреть видеозаписи лекций в классе можно на сайте YouTube канал , возможно видео канала лучше систематизировано в Эта статья .
скайп: ГоловачКурсы электронная почта: [email protected] Теги: #java #курсы по программированию #многопоточность #многоядерность #java #Алгоритмы
Вместе с данным постом часто просматривают:
-
Роль И Функции Pmo В Проектных Компаниях
19 Oct, 24 -
Unix-Хостинг — Это Тупик
19 Oct, 24 -
Внимание. Опасность Для Вашего Iphone
19 Oct, 24 -
Microsoft Выпустила Офлайн-Редактор Блогов
19 Oct, 24 -
Яндекс.директу – Пять Лет
19 Oct, 24