Далее основной поток пробуждает рабочие

Далее основной поток пробуждает рабочие

Создание эффективных Win32-приложений - ДЖ. Рихтер

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

На примере этого кода хорошо видно, насколько тривиальным становится реше­ние этой распространенной задачи программирования при использовании C++. Класс CWhenZero дает нам гораздо больше возможностей — не один лишь инверсный се­мафор. Мы получаем теперь безопасный в многопоточной среде объект данных, ко­торый переходит в свободное состояние, когда его значение обнуляется! Вы можете не только увеличивать и уменьшать счетчик семафора на 1, но и выполнять над ним любые математические и логические операции, в том числе сложение, вычитание, умножение, деление, вычисления по модулю! Так что объект CWhenZero намного функциональнее, чем объект ядра «семафор».

С этими классами шаблонов C++ можно много чего придумать. Например, создать класс CInterlockedString, производный от CInterlockedType, и с его помощью безопас­но манипулировать символьными строками. А потом создать класс CWhenCertain- String, производный от CInterlockedString, чтобы освобождать объект ядра «событие», когда строка принимает определенное значение (или значения). В общем, возмож­ности безграничны.

public: // открытые функции-члены

// Примечание: конструкторы и деструкторы всегда безопасны // в многопоточной среде.

Новости

все
25.07.2012
Главный инспектор аэрокосмического агентства США, НАСА, сообщил о расследовании скандального
24.07.2012
Анонсированы Leica M9 и X1: карманный FF и APS-C с фиксом Для тех, кто не желает таскать с
23.07.2012
Скоро беспроводная сеть позволит посмотреть сквозь стену? Видеть сквозь препятствия –

Дизайны

Разработали структуру сайта, создали сайт, соответствующий всем требованиям заказчика. Создали
Разработали структуру сайта, создали сайт по новым технологиям. Создали индивидуальный и
ООО Транспортная Компания «ТрансРусь» предлагает Вам свои услуги по приемке и