Асинхронный семафор в многопоточных приложениях

Лекция

Привет, Вы узнаете про асинхронный семафор в многопоточных приложениях, Разберем основные ее виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое асинхронный семафор в многопоточных приложениях , настоятельно рекомендую прочитать все из категории Операционные системы и системное программировние

Асинхронный семафор — это структура, которая используется в асинхронных моделях программирования. Ее цель — заблокировать fire-действие, позволяя ему выполниться только после того, как группа других, асинхронных действий выполнится полностью.

Асинхронный семафор — специфический тип абстрактной структуры данных  семафор в мире асинхронного программирования.

Концепцию семафоров изобрел голландский ученый Эдсгер Дейкстра.

Структура асинхронного семафора 

Асинхронный семафор принимает функцию как аргумент: Этот аргумент обычно называют «fire-функция». Fire-функция будет выполнена после того, как все асинхронные действия будут завершены.

Асинхронный семафор также имеет блокирующую переменную: счетчик, который хранит число невыполненных на данный момент асинхронных действий, оставшихся в очереди . Об этом говорит сайт https://intellect.icu . Когда этот счетчик становится равным нулю, все асинхронные действия уже завершились и вызывается fire-функция.

Асинхронный семафор имеет две дополнительные функции:

Функция v(): при вызове этой функции, значение внутренней блокирующей переменной увеличивается. Это увеличение характеризует добавление одного из асинхронных действий в очередь и ожидание им процессорного времени для выполнения.

Функция p() : когда асинхронное действие завершается, вызывается функция р(). Функция p() уменьшает значение внутренней блокирующей переменной. Выполненное асинхронное действие завершается и удаляется из очереди. Функция p() вызывается изнутри завершенного асинхронного действия функции обратного вызова. Функция p() также проверяет равенство нулю переменной, которая характеризует количество асинхронных действий в очереди. Если это так, все действия были завершены, и fire-функция может быть вызвана.

Использование асинхронного семафора 

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

Когда обратный вызов этой асинхронной функции закончил свое выполнение, вызывается функция p(), которая уменьшает внутреннюю переменную блокировки. Это отражает тот факт, что асинхронное действие завершено.

Функция p() также проверяет, равна ли нулю переменная блокировки. Если это так, значит все асинхронные действия были завершены и «fire-функция» будет вызвана.

Асинхронный семафор эффективен, когда асинхронные действия выполняются независимо.

 

См. также  

  • Критическая секция
  • Мьютекс
  • Фьютекс
  • Состояние гонки
  • Разделяемая память
  • Условная переменная

Я что-то не договорил про асинхронный семафор в многопоточных приложениях, тогда сделай замечание в комментариях Надеюсь, что теперь ты понял что такое асинхронный семафор в многопоточных приложениях и для чего все это нужно, а если не понял, или есть замечания, то нестесняся пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятелно рекомендую изучить комплексно всю информацию в категории Операционные системы и системное программировние

59
0

Заказать контрольную или курсовую/дипломную работу

У меня мало времени и хочу
Заказать работу
или
я специалист в данной области и
Хочу заработать

Без посредников, но с опцией гаранта

Rating 9 of 10. count vote: 2
You vote:



Комментарии


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

ответить

Операционные системы и системное программировние

Термины: Операционные системы и системное программировние