LINUX.ORG.RU

Эмуляция однопоточности

 


0

2

Есть несколько подписчиков. Есть сендер, который шлёт в очередь сообщения. Как сделать так:

  1. сообщение попадает одному из подписчиков
  2. пока он его не обработает, другие не получают сообщения из очереди

Такая себе эмуляция однопоточной обработки

★★★

локнуть мьютексом очередь на извлечении данных. пока идет обработка - мьютекс локнут. ну или семафор. семафор каноничней.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)

В цикле брать случайно обработчик, ждать пока выполнит, повторить

in_dance
()
  1. получается автоматически при реализации модели producer-consumer
  2. тут даже не знаю. Посылать сообщение продюсеру вместо обычного ack?
unC0Rr ★★★★★
()
Последнее исправление: unC0Rr (всего исправлений: 1)
  • cвести количество подписчиков к 1 диспетчеру
  • диспетчер распределяет сообщения между обработчиками
vvn_black ★★★★★
()

man Хоть-что-нибудь, школотрон.

anonymous
()

Тебе нужно использовать паттерн «прокси». Стратегия доступа обработчиков к сообщениям в очереди будет определяться в нем.

Djanik
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.