Java lecture #05 concurrency презентация
Содержание
- 2. Agenda Примитивы синхронизации Thread-safe коллекции Планировщики и пулы потоков Fork/Join Framework
- 3. Lock Lock – интерфейс, обозначающий мьютекс в явном виде При этом
- 4. Lock Рассмотрим реализацию thread-safe счетчика с использованием Lock В отличие от
- 5. Lock Наиболее распространенный паттерн для работы с Lock’ами представлен
- 6. Lock fairness Fairness (равнодоступность) – свойство Lock’a, при котором при освобождении
- 7. Lock – масштабируемость Тест для измерения относительной масштабируемости synchronized в сравнении с Lock,
- 8. Как обеспечить atomicity и visibility без memory barrier’a? Как обеспечить atomicity
- 9. Atomic wrappers
- 10. Atomic wrappers - пример
- 11. Agenda Примитивы синхронизации Thread-safe коллекции Планировщики и пулы потоков Fork/Join Framework
- 12. Collections.synchronized…() Класс Collections содержит среди прочих методы Collections.synchronizedCollection(Collection<T> c) Collections.synchronizedList(List<T> list)
- 13. Legacy implementations HashTable<K, V> – синхронизированная реализация интерфейса Map Все методы
- 14. Java.util.concurrent – новые интерфейсы
- 15. java.util.ConcurrentMap Любые попытки сделать реализацию Map thread-safe упираются в необходимость атомарности
- 16. java.util.ConcurrentMap boolean remove(Object key, Object value) boolean replace(K key, V oldValue,
- 17. ConcurrentHashMap Основная thread-safe реализация интерфейса Map<K,V> Реализует также ConcurrentMap Внутри похожа
- 18. ConcurrentHashMap Версии реализации от 7 и ниже используют сегментированную структуру При
- 19. ConcurrentHashMap vs HashTable
- 20. Blocking Queues Отлично подходят для реализации шаблона Producer-Consumer Добавляют набор блокирующих
- 21. Blocking queues: API reference
- 22. Copy-on-write
- 23. Copy-on-write - Реализация И её реализация в CopyOnWriteArrayList:
- 24. Skip Lists ConcurrentSkipListMap и ConcurrentSkipListSet основаны на Skip List’ах Это единственные
- 25. Итераторы Как правило итераторы коллекций из java.util.concurrent не бросают ConcurrentModificationException Они
- 26. Итераторы Выполнение этого кода приводит к ConcurrentModificationException Если заменить реализацию на
- 27. Agenda Примитивы синхронизации Thread-safe коллекции Планировщики и пулы потоков Fork/Join Framework
- 28. Callable Имеет единственный метод V call() По принципу действия схож с
- 29. Executor Executor – интерфейс, обозначающий абстрактную систему для асинхронного исполнения
- 30. ExecutorService Представляет собой расширение Executor’а с дополнительными возможностями Способен создавать объекты
- 31. Future<T> Future – интерфейс, семантически обозначающий результат выполнения асинхронной операции Тип-параметр
- 33. Agenda Примитивы синхронизации Thread-safe коллекции Планировщики и пулы потоков Fork/Join Framework
- 34. Fork/Join – это подход к написанию многопоточных программ, основанный на следующем
- 35. Fork/Join Framework Начиная с Java 7 в стандартные библиотеки Java включен
- 36. Fork/Join Framework API Интерфейс ForkJoinTask<T> представляет собой небольшую задачу как результат
- 37. Fork/Join Framework - Пример Пример вычисляет N-ый член последовательности Фибоначи методом
- 38. Agenda Примитивы синхронизации Thread-safe коллекции Планировщики и пулы потоков Fork/Join Framework
- 39. ThreadLocal<T> ThreadLocal – типизированный контейнер для объектов, ассоциирующий содержимое с текущим
- 40. Semaphore Объект, позволяющий войти в заданный участок кода не более чем
- 41. CountDownLatch Он предоставляет две основные операции: countDown() – уменьшает значение счетчика
- 42. CountDownLatch - Пример
- 43. CyclicBarrier Позволяет N потокам дождаться друг друга в некоторой точке выполнения
- 44. CyclicBarrier - Пример
- 45. Library Brian Goetz. Java concurrency in practice Java Language Specification, глава
- 46. Скачать презентацию













































Слайды и текст этой презентации
Похожие презентации