Java Advanced Concurrency Utilities 1 l void run
- Slides: 42
Java Advanced Concurrency Utilities
Производитель-потребитель (1) l Производитель void run() { try { while (true) { E e; // Создание элемента queue. put(e); } } catch (Interrupted. Exception e) { } } Georgiy Korneev Java Advanced / Collections Framework 7
Производитель-потребитель (2) l Потребитель void run() { try { while (true) { E e = queue. take(); // Обработка элемента } } catch (Interrupted. Exception e) { } } Georgiy Korneev Java Advanced / Collections Framework 8
Реализации Blocking. Queue Array. Blocking. Queue – очередь на массиве l Linked. Blocking. Queue – очередь на списке l Priority. Blocking. Queue – очередь на хипе l Synchronous. Queue – очередь без "внутренности" l Georgiy Korneev Java Advanced / Collections Framework 9
Атомарные операции l Общие операции get() – атомарное чтение l set(value) – атомарная запись l compare. And. Set(expected, value) – сравнение и запись l weak. Compare. And. Set(expected, value) – слабое сравнение и запись l l Операции над числами add. And. Get() / get. And. Add() l get. And. Increment() / increment. And. Get() l get. And. Decrement() / decrement. And. Get() l Georgiy Korneev Java Advanced / Collections Framework 13
Атомарные переменные l Типы Atomic. Boolean l Atomic. Integer l Atomic. Long l Atomic. Reference l l Операции l Обычные Georgiy Korneev Java Advanced / Collections Framework 14
Атомарные массивы l Типы Atomic. Integer. Array l Atomic. Long. Array l Atomic. Reference. Array l l Операции l Обычные, с указанием индекса Georgiy Korneev Java Advanced / Collections Framework 15
Атомарный доступ к полям l Типы Atomic. Integer. Field. Updater l Atomic. Long. Field. Updater l Atomic. Reference. Field. Updater l l Операции Обычные, с указанием объекта l Создание new. Updater(class, field. Name) l Georgiy Korneev Java Advanced / Collections Framework 16
Помеченные ссылки l Типы Atomic. Markable. Reference – ссылка помеченная флажком l Atomic. Stamped. Reference – ссылка помеченная числом l Georgiy Korneev Java Advanced / Collections Framework 17
Примитивы синхронизации Semaphore – семафор l Cyclic. Barrier – многоразовый барьер l Count. Down. Latch – защелка l Exchanger – рандеву l Georgiy Korneev Java Advanced / Collections Framework 20
Условия l Интерфейс Condition l l l await(time? ) – ждать условия await. Until(deadline) – ждать условия до времени await. Uninterruptibly() – ждать условие signal() – подать сигнал signal. All() – подать сигнал всем Georgiy Korneev Java Advanced / Collections Framework 27
Реализация блокировки Класс Reentrant. Lock l Дополнительные методы l is. Fair() – “честность” блокировки l is. Locked() – блокировка занята l get. Queued. Threads() / get. Queue. Length() / has. Queued. Thread(thread) / has. Queued. Threads() – потоки, ждущие блокировку l get. Waiting. Threads(condition) / get. Wait. Queue. Length(condition) – потоки, ждущие условие l Georgiy Korneev Java Advanced / Collections Framework 28
Читатели и писатели Интерфейс Read. Write. Lock l Методы l read. Lock() – блокировка для читателей l write. Lock() – блокировка для писателей l l Реализация Reentrant. Read. Write. Lock Georgiy Korneev Java Advanced / Collections Framework 29
Исполнители l Интерфейс Executor l l execute(Runnable) – выполнить задание Интерфейс Executor. Service submit(Runnable) – выполнить задание l Future<V> submit(Callable<V>) – выполнить функцию l invoke. All(List<Callable>) – выполнить все функции l invoke. Any(List<Callable>) – успешно выполнить функцию l Georgiy Korneev Java Advanced / Collections Framework 31
Отложенное исполнение l Интерфейс Scheduled. Executor. Service l l l schedule(callable, timeout) – исполнить через timeout schedule(runnable, timeout? ) – исполнить через timeout shedule. At. Fixed. Rate(runnable, initial. Delay, period, unit) – периодическое исполнение schedule. With. Fixed. Delay(runnable, initial. Delay, delay, unit) – исполнение с равными интервалами Все методы возвращают Scheduled. Future Georgiy Korneev Java Advanced / Collections Framework 34
Реализация отложенного исполнения l Класс Scheduled. Thread. Pool. Executor Georgiy Korneev Java Advanced / Collections Framework 35
Интервалы времени l Перечисление Time. Unit SECONDS l MILLISECONDS l MICROSECONDS l NANOSECONDS l l Интервалы задаются парой Значение l Единица измерения l Georgiy Korneev Java Advanced / Collections Framework 38
Очереди с задержкой Класс Delay. Queue l Интерфейс Delayed l l get. Delay(unit) – получить остаток задержки Georgiy Korneev Java Advanced / Collections Framework 39
Ссылки JSR 166: Concurrency Utilities // http: //jcp. org/en/jsr/detail? id=166 l Concurrent Programming with J 2 SE 5. 0 // http: //java. sun. com/developer/technical. Article s/J 2 SE/concurrency/ l Getting to know synchronizers http: //java. sun. com/developer/JDCTech. Tips/ 2005/tt 0216. html#1 l Georgiy Korneev Java Advanced / Collections Framework 41
Вопросы Georgiy Korneev Java Advanced / Collections Framework 42
- Void setup(void)
- Void main(void)
- Void main(void)
- Concurrency issues in java
- Delay queue java
- Long run perfect competition equilibrium
- Themes in run lola run
- Run lola run editing techniques
- Short run vs long run economics
- Multirule
- Difference between short run and long run economics
- Run lola run script
- Lola rennt filmanalyse
- Javajava
- Java write once run anywhere
- Advanced data structures in java
- Java object oriented exercises
- Advanced programming in java
- The place where all three altitudes meet is called the
- Define point of concurrency
- Concurrency in web applications
- Concurrency
- Pessimistic concurrency control
- Ue4 critical section
- Unix concurrency mechanisms
- Recovery control
- Concurrency control mechanisms
- Concurrency control in distributed databases
- Concurrency control in distributed transactions
- Ada concurrency
- Communication and concurrency
- Safety and liveness in concurrency
- Nested state diagram
- Concurrency
- Transactions and concurrency control in distributed systems
- Explain subprogram level concurrency with an example.
- 5-3 concurrent lines medians and altitudes
- Bisectors of angles of triangle are concurrent
- Reader writer problem
- Concurrency visualizer
- What is concurrency control and recovery management.
- Concurrency can occur at
- Concurrency control with time stamping methods