2010-08-17 10 views
6

Se l'applicazione è mirata su Windows Vista o successivo, è possibile sostituire tutto critical sections con SRW locks? Poiché la sezione critica si escludono a vicenda, per l'utilizzo è equivalente ai blocchi SRW in modalità esclusiva, giusto? Secondo MSDN, SRW è ottimizzato sia per velocità che per spazio. C'è qualche svantaggio per fare questo? Non sono sicuro di come CS e SRW siano implementati internamente da Microsoft.Sostituire la sezione critica con il blocco SRW

Grazie! Il libro di

risposta

7

Vedere Joe Duffy "programmazione concorrente su Windows", pg 289.

La risposta breve alla tua domanda è "quasi". Ci sono semantica con CRITICAL_SECTION acquisite in modo ricorsivo che sono diverse per SRWL. Se il tuo programma ha sfruttato queste caratteristiche delle sezioni critiche di Win32, non puoi passare facilmente a SRWL facilmente. Si potrebbe, tuttavia, avvolgere un SRWL in un wrapper per fornire semantica CS, ma ci sono un sacco di sottigliezze nel farlo, quindi è meglio attenersi ai CS se si dipende da tale comportamento.

Kenny Kerr's article descrive un po 'come entrambi vengono implementati internamente.

Problemi correlati