| |||
![]()
|
![]() ![]() |
![]()
банальности OOD: объектно-ориентированная локировка вот мелочь вроде, а приятно. interface ILockable { void lock(); void unlock(); } хотя можно и так (далее будет понятно, почему) interface IEnterable { void enter(); void leave(); } Где это может применяться? Ну, для начала, мютекс ложится на этот интерфейс напрямую. А вот так ложится на этот интерфейс read-write lock: class RWLock { ILockable& readLock(); ILockable& writeLock(); } обратите внимание, эти функции ничего не локают, а только лишь возвращают интерфейс. мелочь, а приятно, поскольку позволяет использовать один и тот же guard класс для локировки чего угодно: Guard g1(mutex); Guard g2(rwlock.readLock()); Guard g3(rwlock.writeLock()); |
||||||||||||||
![]() |
![]() |