??????д????RWLock??

??????д?????????????????б?????????????????????????????д????????????????Щ????????????????????????????????е?????????????????????е??????????????????????е?д??????????д?????????????д??????????????????????????????????д??????????????

????????д????????????????SRWLOCK??????????InitializeSRWLock?????????

 Void InitializeSRWLock(PSRWLOCK SRWLock);

???????????????д?????????????AcquireSRWLockExclusive????SRWLock???????????????????????????????

Void AcquireSRWLockExclusive(PSRWLOCK SRWLock);

????????????????????????

Void ReleaseSRWLockExclusive(PSRWLOCK SRWLock);

??????????????????

????????????????????????????

Void AcquireSRWLockShared(PSRWLOCK SRWLock);

????????????????????

Void ReleaseSRWLockShared(PSRWLOCK SRWLock);

?????????????????

??????д???????????д?????????????????????????ε???ReleaseSRWLock*??????????????? ??

?????????????Щ???????????????????????????????x ms?????????????????????佫??>2x?????????????????????ж??cpu??????????????????????????????Cpu?????????????????

??????д????ж?????????????????д??????????????????????????????????????д???????????????д??

????????????????????????д?????????????????Щ??????д??????????????????????????????????????????д???????????????????????????????????????????????????????????????API?????????????????????????????л??????????????????????????????????????????

????????д???????????????-??????????

??????????????????????????????y?????????????????????д???????????????д???????????д??????????????????????????????????????????????????????windows????????Щ??????????Щ??????

????Windows??SleepConditionVariableCS??SleepConditionVariableSRW???????????????????????????????????????????????????????????????????????????????????????????

<SPAN style="FONT-SIZE: 18px">Bool SleepConditionVariableCS(
  PCONDITION_VARIABLE pConditionVariable??
  PCRITICAL_SECTION pCriticalSection??
  DWORD dwMilliseconds);
Bool SleepConditionVariableSRW(
  PCONDITION_VARIABLE pConditionVariable??
  PSRWLOCK pSRWLock??
  DWORD dwMilliseconds
  ULONG Flags);</SPAN>

????pConditonVariable??????????????????????????????????????????????????????????????????λ???SRWLock?????ù???λ?SRWLock?????????????????????Flags??????????????????????????????????????????????????????????CONDITION_VARIABLE_LOCKMODE_SHARED????????????????????????д?????????????0?????????????

????dwMilliseconds????????????????????????????????????????????????????????????????????δ????????????????false???????true??

???????????????????????????????????????????????????????????????????????WakeConditionVariable??WakeAllConditionVariable????????????????????????Sleep*????????????????????????????????

<SPAN style="FONT-SIZE: 18px">Void WakeConditonVariable(
   PCONDITION_VARIABLE ConditionVariable);
Void WakeAllConditionVariable(
   PCONDITION_VARIABLE ConditionVariable);</SPAN>

????WakeConditionVariable???SleepConditionVariable*???????????????????????????????????????????????????????????????????????????????????????????