Re[4]: шаблон наблюдатель в многопоточной среде
От: D14  
Дата: 09.09.09 12:25
Оценка:
Здравствуйте, McQuay, Вы писали:


MQ>А какие варианты? Генератор все равно должен монитроить изменение состояний по условию задачи. Событий ведь он не получает?


Я, прямо скажем, не большой специалист в этом, думаю как-то так

void emit()
{
   Mutex.lock();
   for (int i=0;i<n;++i)
   {
       положить в очередь сообщений i-го потока сообщение для обработки.
       с указателями на  Mutex и WaitCondition
   }
   WaitCondition.wait(&Mutex);
   Mutex.unlock();
}

Получатель события {
  Полезная работа  
  Mutex.lock();
  Уменьшить счетчик обработанных сообщений.
  if (последний получатель) WaitCondition.wake();
  Mutex.unlock();
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.