Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Scoped Locking, Strategized Locking

Podobné prezentace


Prezentace na téma: "Scoped Locking, Strategized Locking"— Transkript prezentace:

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

7

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

12

13 Parametrizovaná verze

14

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


Stáhnout ppt "Scoped Locking, Strategized Locking"

Podobné prezentace


Reklamy Google