Рет қаралды 629
00:00 Повторение. TCP соединение. Блокирующий IO. Создание потока для каждого соединения.
11:16 Пул потоков
17:18 Как решить какой поток в пуле будет выполнять какую задачу
22:50 API для Executor Service, что мы от него хотим?
24:50 Пример отправления задачи на выполнение executor. Асинхронность относительно главного потока main
30:27 Получение результата задачи
32:12 Что возвращает метод submit и как работать с его результатом
37:17 Вывод тестовой программы
43:35 Повторение. Как выглядит ExecutorService изнутри.
46:27 Возможности кастомизации Executor service (Executor service tuning)
49:02 Рассматриваем создание ExecutorService, кастомные функции создания потока ThreadFactory. Кастомная функция обработки переполнения очереди задач - RejectionHandler
56:00 Рассматриваем код реализации java.util…concurrent.ThreadPoolExecutor
1:01:38 Thread dump - что это, зачем и как мы можем это использовать в работе
1:08:00 Синхронное взаимодействие с внешней системой. Реализация «асинхронной» коммуникации и почему не все, что называется «асинхронно» на самом деле таковым является.
1:17:40 Guava - асинхронная шина (очередь). Паттерн publish-subscribe
1:22:45 Обсуждаем как может быть реализована такая шина (спойлер - ExecutorService)
1:27:50 Советы по взаимодейтвию с внешними системами (подробнее про это в следующей лекции)
1:29:08 Ответы на вопросы