Инфоурок Информатика ПрезентацииUsage concurrency in Java.

Usage concurrency in Java.

Скачать материал
Скачать материал "Usage concurrency in Java."

Получите профессию

Няня

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Специалист сварочного производства

Описание презентации по отдельным слайдам:

  • Usage java.util.concurrencein JavaFor students of universities
Author: Oxana...

    1 слайд

    Usage java.util.concurrence
    in Java
    For students of universities
    Author: Oxana Dudnik

  • 2 слайд

  • 3 слайд

  • 4 слайд

  • 5 слайд

  • 6 слайд

  • 7 слайд

  • BlockingQueueИнтерфейс BlockingQueue является очередью (Queue), т.е. его эле...

    8 слайд

    BlockingQueue

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

  • 9 слайд

  • 10 слайд

  • 11 слайд

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

    12 слайд

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

  • 13 слайд

  • CountDownLatch Позволяет одному или нескольким потокам ожидать до тех пор, по...

    14 слайд

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

  • 15 слайд

  • CyclicBarrier— реализует синхронизационную модель «щеколды» — создается щекол...

    16 слайд

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

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

    17 слайд

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

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

  • FutureResult (будущий результат) Иногда вы хотите запустить процесс асинхронн...

    18 слайд

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

  • обработчик (Executor) Util.concurrent определяет интерфейс Executor, для асин...

    19 слайд

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

    Executor executor = new QueuedExecutor();
    ...
    Runnable runnable = ... ;
    executor.execute(runnable);

  • ExecutorService Интерфейс, который описывает сервис для запуска Runnable или...

    20 слайд

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

  • java.util.concurrent.locks ReenterantLock — двоичный семафор с возможностью м...

    21 слайд

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

  • java.util.concurrent.atomic В пакет java.util.concurrent.atomic входят 9 видо...

    22 слайд

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

  • AtomicInteger atomicInteger = new AtomicInteger(123); 

int expectedValue = 1...

    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));

Получите профессию

Секретарь-администратор

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

Concurrent Collections — набор коллекций, более эффективно работающие в многопоточной среде нежели стандартные универсальные коллекции из java.util пакета. Вместо базового враппера Collections.synchronizedList с блокированием доступа ко всей коллекции используются блокировки по сегментам данных или же оптимизируется работа для параллельного чтения данных по wait-free алгоритмам.

Queues — неблокирующие и блокирующие очереди с поддержкой многопоточности. Неблокирующие очереди заточены на скорость и работу без блокирования потоков. Блокирующие очереди используются, когда нужно «притормозить» потоки «Producer» или «Consumer», если не выполнены какие-либо условия, например, очередь пуста или перепонена, или же нет свободного «Consumer»'a.

Synchronizers — вспомогательные утилиты для синхронизации потоков. Представляют собой мощное оружие в «параллельных» вычислениях.

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

Locks — представляет собой альтернативные и более гибкие механизмы синхронизации потоков по сравнению с базовыми synchronized, wait, notify, notifyAll.

Atomics — классы с поддержкой атомарных операций над примитивами и ссылками.

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 665 052 материала в базе

Скачать материал

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 16.02.2015 880
    • PPTX 1020 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Dudnik Oxana Antonovna. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Dudnik Oxana Antonovna
    Dudnik Oxana Antonovna
    • На сайте: 9 лет и 3 месяца
    • Подписчики: 1
    • Всего просмотров: 27369
    • Всего материалов: 37

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Экскурсовод

Экскурсовод (гид)

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в образовательной организации

Учитель математики и информатики

500/1000 ч.

от 8900 руб. от 4150 руб.
Подать заявку О курсе
  • Сейчас обучается 685 человек из 79 регионов
  • Этот курс уже прошли 1 809 человек

Курс профессиональной переподготовки

Теория и методика обучения информатике в начальной школе

Учитель информатики в начальной школе

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 96 человек из 34 регионов
  • Этот курс уже прошли 222 человека

Курс профессиональной переподготовки

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Математика и информатика")

Учитель математики и информатики

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 36 человек из 17 регионов
  • Этот курс уже прошли 35 человек

Мини-курс

Стартап: стратегия, развитие, и инвестиции

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Современные тренды в физкультуре и спорте: организация обучения и методика тренировок

2 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Развитие дошкольного мышления

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Этот курс уже прошли 20 человек