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. Если класс содержит несколько несвязанных


Комментарии закрыты.