Обзор современного состояния средств поддержки многопоточности в java

Лекция / семинар

Добавить в календарь:
Поделиться:

Основные тезисы:

1) Из-за технических ограничений сложно наращивать частоту процессоров, но зато можно сделать много ядер;

2) Существует много задач, которые допускают параллельное исполнение каких-то из своих подзадач;

3) Работа с памятью стала медленнее, чем выполнение инструкций процессора, в результате чего потребовались кеши;

4) У подзадач могут быть какие-то общие данные, что влечёт необходимость обеспечивать когерентность кешей

5) Есть trade-off между производительностью и соответствием того, как исполняется код, интуитивным предположениям;

6) Например, reordering-и, появляющиеся в MESI при добавлении invalidate queue и write buffers;

7) Разработчики процессоров не могут знать заранее, когда reordering допустим, а когда нет. Это должны решать разработчики софта. Понятие memory model. Пример с memory barriers в терминах MESI.

8) Причём тут java? Текущие абстракции.

9) Зачем нужны более высокоуровневые инструменты из JMM: атомарность, взаимное исключение, синхронизация потоков.

 

О докладчике

Глеб Смирнов. Увлекается многопоточностью в java с 2009 года. Вёл разработку серверных приложений с высокой степенью параллелизма, включая платформу для высокочастотной алгоритмической торговли. Последние полтора года работает в Яндексе.

Комментарии (0):

Оставлять комментарии могут только зарегистрированные пользователи

Для получения embed кода необходимо кликнуть правой
кнопкой мыши на видео и выбрать пункт меню
'Сгенерировать HTML код'

Забыли пароль? Регистрация