Мы помогаем ИТ-компаниям оптимально настроить процессы менеджмента и разработки

Найти

(067) 536-87-70

(095) 492-65-67

Multithreading in Java

Описание курса:

Целью курса является изучение особенностей Java, позволяющих строить выскопроизводительные приложения, оптимизированные под современную многоядерную архитектуру вычислительных машин.

Мы рассмотрим, каким образом особенности работы современных аппаратных платформ должны быть приняты во внимание при построенни приложений. Создадим свои собственные синхронизационные примитивы и lock free структуры данных. Рассмотрим нюансы реализации существующих струтур данных внутри JDK.

 

Успешно закончившие курс студенты получат возможность трудоустройства в Orientechnologies в качестве Core Developer.

 

Целевая аудитория:

Инженеры программного обеспечения с опытом работы в области программирования на Java.

 

Программа курса:

  • Архитектура CPU, микропроцессорные кеши.
  • Протокол когерентности кешей MESI
  • Store buffers (SB) и invalidation queues (IQ) как механизм улучшения производительности CPU.
  • Проблемы с когерентностью данных при использовании  SB и IQ и memory bariers.
  • Memory bariers: LoadLoad, StoreStore, LoadStore, StoreLoad
  • Концепции Atomicity, false sharing, word tiering с примерами кода и бенчмарками.
  • Концепции: Sequential consistency, tottal synchronization order (TSO) and synchronized actions.
  • Пример использования memory bariers для реализации TSO для переменной с модификатором volatile.
  • Atomic*.lazySet чем она отличается от volatile и где её эффектиовно использовать.
  • Создание первоначального варианта single producer - single consumer queue.
  • Оптимизация производительности SPSC queue используя навыки, полученные на предыдущих занятиях.
  • Создание счётчика работающего быстрее Atomic*.incrementAndGet() a-la JDK 8.
  • Создание и оптимизация multi producer single consumer queue.
  • Практический бесполезный (non-scallable) ReadWriteLock в Java и чем его заменить
  • Построение микробенчмарков с помошью JMH.

 

Занятия проводит Андрей Ломакин.

 

Размер группы: 12-16 человек.

Время занятий: вечернее + удаленное обучение

Объем курса: 16 занятий по 2 часа

Цена: 250 грн/занятие

Документ об окончании курса: сертификат

 

Часть прибыли с курса будет отправлена на благотворительность.