Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Scoped Locking, Strategized Locking
2
Scoped Locking Je to idiom pro C++
Zabezpečí automatické uvolnění zámku při návratu z daného scope-u
3
Příklad Hit counter Počítadlo množství přístupů k danému URL
4
Problémy Nepozornost (return, break, continue...) Výjimky
5
Řešení Guard class Zámek se získává v konstruktoru a uvolňuje v destruktoru
6
Připomínky Měl by být použitý pointer na zámek Boolean owner
Je možné přidat metody na explicitní uvolnění zámku
8
Nedostatky Potenciál pro deadlock při rekurzi Varování překladače
9
Strategized Locking Návrhový vzor 2 cíle:
Umožnit přizpůsobování synchronizačního mechanismu podle potřeb Umožnit jednoduchou údržbu kódu 2 typy – parametrizovaný a polymorfní Polymorfní varianta by měla být používána za předpokladu, že typ zámku není známý před runtime-em
10
Příklad File cache
11
Polymorfismus
13
Parametrizovaná verze
15
Bridge Strategy Problém: Polymorfický zámek nelze předat templateům jako pointr Řešení: další abstrakce
16
Null mutex Jednovláknová varianta
17
Nevýhody Přílišná flexibilita
Ne všechny překladače umějí efektivně pracovat s parametry
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.