Light-industry-up.ru

Экосистема промышленности

Охраняемая любовь дорама, платная 77, охраняемая хищная птица

16-06-2024

Перейти к: навигация, поиск
Шаблон проектирования
Охраняемая приостановка
Guarded Suspension
Тип:

Шаблоны параллельного программирования

Назначение:

Коммуникация между потоками

Описан в Design Patterns

Нет

В параллельном программировании, охраняемая приостановка — это шаблон проектирования для управления операциями, которые для начала своего выполнения требуют как получения блокировки, так и удовлетворения заданным предусловиям.

Охраняемая приостановка — общепринятая идиома для координации работы потоков.

Пример на Java

В следующем примере показан обмен сообщениями между двумя потоками с использованием шаблона охраняемая приостановка:

public class Drop {
 
    // Сообщение, которое будет передано
    // от потока-источника потоку-приёмнику.
    private String message;
 
    // True если поток-приёмник должен дождаться пока поток-источник
    // оставит сообщение, или false если поток-источник должен дождаться
    // пока поток-приёмник заберёт ранее оставленное (потоком-источником)
    // сообщение.
    private boolean empty = true;
 
    public synchronized String take() {
 
        // Ожидаем, пока сообщение станет доступным.
        while (empty) {
            try {
                wait();
            } catch (InterruptedException e) {}
        }
 
        // Переключаем статус.
        empty = true;
 
        // Уведомляем поток-источник, о том
        // что статус был изменён.
        notifyAll();
 
        return message;
    }
 
    public synchronized void put(String message) {
 
        // Ожидаем, пока поток-приёмник не заберёт
        // предыдущее сообщение.
        while (!empty) {
            try { 
                wait();
            } catch (InterruptedException e) {}
        }
 
        // Переключаем статус.
        empty = false;
 
        // Сохраняем сообщение.
        this.message = message;
 
        // Уведомляем поток-приёмник, о том
        // что статус был изменён.
        notifyAll();
    }
}

Ссылки

  • Lea Doug Concurrent Programming in Java Second Edition. — Addison-Wesley, 2000. — ISBN 0-201-31009-0.

Ссылки

  • Guarded Blocks, Concurrency, The Java™ Tutorials [1]


Охраняемая любовь дорама, платная 77, охраняемая хищная птица.

A4, Капутикян, Сильва, Файл:Graduation ceremony at MRU.JPG.

© 2014–2023 light-industry-up.ru, Россия, Краснодар, ул. Листопадная 53, +7 (861) 501-67-06