Win32でのプロセス間リソース共有の仕方で悩んでます

1. ポーリング=Mutexで保護された共有リソースの変更を常に監視
2. サーバー(orクライアント)スレッドでEvent監視+Mutexで共有リソースを保護

余計なCPUリソースを食うのはどちらなんでしょうか?定性的な評価と理由を教えてください
(定性的な評価=プロファイルで調べろは無しでお願いします)
自分は「重さ:Mutex>>>>Event>>>>>>>CriticalSection」というイメージがあるので、
2のマルチスレッドのコンテキストスイッチの重さを考慮しても1の方が重いのではないかと考えています