Презентация, доклад на тему Usage concurrency in Java.

Usage concurrency in Java., предмет презентации: Информатика. Этот материал в формате pptx (PowerPoint) содержит 23 слайдов, для просмотра воспользуйтесь проигрывателем. Презентацию на заданную тему можно скачать внизу страницы, поделившись ссылкой в социальных сетях! Презентации взяты из открытого доступа или загружены их авторами, администрация сайта не отвечает за достоверность информации в них, все права принадлежат авторам презентаций и могут быть удалены по их требованию.

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

Слайд 1
Текст слайда:

Usage java.util.concurrence in Java

For students of universities
Author: Oxana Dudnik


Слайд 2
Текст слайда:




Слайд 3
Текст слайда:




Слайд 4
Текст слайда:




Слайд 5
Текст слайда:




Слайд 6
Текст слайда:




Слайд 7
Текст слайда:




Слайд 8
Текст слайда:

BlockingQueue

Интерфейс BlockingQueue является очередью (Queue), т.е. его элементы хранятся в порядке «первый пришел, первый вышел» (FIFO – first in, first out). Элементы, вставленные в коллекцию в определенном порядке, будут извлечены из нее в том же самом порядке. Также интерфейс гарантирует, что любая попытка извлечь элемент из пустой очереди заблокирует вызывающий поток до тех пор, пока в коллекции не появится элемент, который можно извлечь. Аналогично, любая попытка вставить элемент в заполненную очередь заблокирует вызывающий поток, пока в коллекции не освободится место для нового элемента.


Слайд 9
Текст слайда:




Слайд 10
Текст слайда:




Слайд 11
Текст слайда:




Слайд 12
Текст слайда:

Семафор используется для обмена сигналами между потоками, или же для охраны критической секции. Их также можно использовать и вместо локов.


Слайд 13
Текст слайда:




Слайд 14
Текст слайда:

CountDownLatch

Позволяет одному или нескольким потокам ожидать до тех пор, пока не завершится определенное количество операций, выполняющих в других потоках.
Реализует синхронизационную модель «щеколды» — создается щеколда (с натуральным числом в качестве параметра-счетчика), которая постепенно вынимается с выполнение каких-то операций (как только такая операция выпонена, вызывается метод void countDown(), уменьшающий счетчик). Потоки, которые должны подождать конца выполнения данной цепочки операций, вызывают метод await() и блокируются. Как только щеколда будет вынута (счетчик упадет до нуля), все ожидающие потоки разблокируются и продолжают выполнение.


Слайд 15
Текст слайда:




Слайд 16
Текст слайда:

CyclicBarrier

— реализует синхронизационную модель «щеколды» — создается щеколда (с натуральным числом в качестве параметра-счетчика), которая постепенно вынимается с выполнение каких-то операций (как только такая операция выпонена, вызывается метод void countDown(), уменьшающий счетчик). Потоки, которые должны подождать конца выполнения данной цепочки операций, вызывают метод await() и блокируются. Как только щеколда будет вынута (счетчик упадет до нуля), все ожидающие потоки разблокируются и продолжают выполнение.


Слайд 17
Текст слайда:

Приведите наиболее существенное отличие между CountDownLatch и Barrier.

Barrier накапливает потоке в точке вызова await() пока их количество не превысит заданное. CountDownLatch ждет пока количество вызовов countDown() не превысит нужное, и тогда разблокирует await().


Слайд 18
Текст слайда:

FutureResult (будущий результат)

Иногда вы хотите запустить процесс асинхронно, в надежде, что результаты этого процесса будут доступны позже, когда они вам понадобятся. Вспомогательный класс FutureResult упрощает эту задачу. FutureResult изображает задачу, которой может потребоваться некоторое время на выполнение, и которая может выполняться в другом потоке, а объект FutureResult служит хендлом к этому процессу выполнения. Через него вы можете выяснить, завершилась ли задача, подождать ее завершения и получить ее результат. FutureResult может быть объединен с Executor; вы можете создать FutureResult и поставить его в очередь к обработчику, сохраняя ссылку на FutureResult.


Слайд 19
Текст слайда:

обработчик (Executor)

Util.concurrent определяет интерфейс Executor, для асинхронной обработки Runnable-работ, а также определяет несколько реализаций обработчика Executor, которые предлагают различные характеристики планирования. Постановка задачи в очередь к обработчику делается довольно просто: Executor executor = new QueuedExecutor(); ... Runnable runnable = ... ; executor.execute(runnable);


Слайд 20
Текст слайда:

ExecutorService

Интерфейс, который описывает сервис для запуска Runnable или Callable задач. Методы submit на вход принимают задачу в виде Callable или Runnable, а в качестве возвращаемого значения идет Future, через который можно получить результат.


Слайд 21
Текст слайда:

java.util.concurrent.locks

ReenterantLock — двоичный семафор с возможностью многократного захвата одним потоком.
void lock() захватывает семафор для текущего потока
void unlock() освобождает семафор, захваченный текущим потоком
Condition newCondition() — возвращает объект-условие, связанный с данным семафором. Можно использовать это условие для блокировки потоков до его наступления. Поток блокируется вызовом await() у объекта-события и освобождается, когда у того же события будет вызван метод signal() (освобождает только один поток) или signalAll() (освобождает все блокированные потоки).


Слайд 22
Текст слайда:

java.util.concurrent.atomic

В пакет java.util.concurrent.atomic входят 9 видов атомарных переменных (AtomicInteger; AtomicLong; AtomicReference; AtomicBoolean; формы для массивов атомарных целых чисел; длинные (long); ссылки; а также атомарные с пометкой Класс эталона (reference), которые атомарно обновляют две величины).


Слайд 23
Текст слайда:

AtomicInteger atomicInteger = new AtomicInteger(123);

int expectedValue = 123;

int newValue = 234;
atomicInteger.compareAndSet(expectedValue, newValue);
System.out.println(atomicInteger.getAndAdd(10)); System.out.println(atomicInteger.addAndGet(10));


Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть