Параллельные и распределенные вычисления: Многопоточное программирование. Сухорослов Олег

571

Сухорослов Олег рассказывает о многопоточном программировании.

  1. Concurrency
  2. Зачем нужно несколько процессов
  3. Процессы и потоки
  4. Реализации потоков
  5. Многоточечное программирование на Java
  6. Класс java.lang.Thread (Поток)
  7. Класс Person
  8. Интерфейс java.lang.Runnable (Задание)
  9. Результаты запуска RunnablePerson
  10. Банк
  11. Банковский счет
  12. Клиент v1
  13. Запуск
  14. Клиент v2
  15. Входные данные
  16. Результаты запусков
  17. Отрицательный баланс
  18. Возможная трасса run()
  19. Возможная трасса post()
  20. Состояние гонки (Race Condition)
  21. Безопасность (Safety)
  22. Синхронизация
  23. Взаимное исключение
  24. Модификатор synchronized
  25. Результаты запусков
  26. Блок synchronized
  27. Результаты запусков
  28. Блок synchronized 2
  29. Результат
  30. Перевод денег
  31. Bank
  32. Client
  33. Входные данные
  34. Результаты
  35. Взаимная блокировка
  36. Живучесть
  37. Как избежать взаимной блокировки
  38. Условия возникновения взаимной блокировки
  39. Модифицированный Bank
  40. Пакет util.concurrent.locks
  41. Еще одна реализация перевода
  42. Остановка потока
  43. Java Memory Model
  44. Пример с двумя переменными
  45. Обеспечение видимости изменений между потоками
  46. StopThread2
  47. Ключевое слово volatile
  48. Остановка потока
  49. Общая схема реализации
  50. Приоритеты потоков
  51. Задача об обедающих философах
  52. Философ
  53. Наивное решение
  54. Запуск
  55. Результат
  56. Домашнее задание