n. Синхронизация целых классов
Автор admin
Четверг, 25 июня 2009 11:32
n. Синхронизация целых классов Библиотека ZThread содержит шаблон GuardedClass, предназначенный для автоматического создания синхронизированных оболочек для целых классов. Это подразумевает автоматическую защиту каждой функции класса: //: СИ:SynchronizedClass.срр 11{I) ZThread #include “zthread/GuardedCl ass.h” using namespace ZThread: class MyClass { public: void fund О {} void func2() {} }: int mainO { MyClass a: a.funcK); // He синхронизируется a.func2(): // He синхронизируется GuardedClass b(new MyClass): // Синхронизированные вызовы, в любой момент времени // доступ разрешен только одному программному потоку: b->funcl(): b->func2(): } ///:- Объект а не синхронизирован, поэтому функции funcl() и func2() могут вызываться в любое время любым количеством потоков. Объект b защищен шаблоном GuardedClass, а, следовательно, все его функции автоматически синхронизируются, и в любой момент времени для каждого объекта может выполняться только одна функция. Шаблон GuardedClass устанавливает блокировку на уровне класса, что может отразиться на быстродействии1. Если класс содержит несколько несвязанных
Комментарии закрыты.
Последние комментарии