קודם כל בתפקיד:
השתמש ב CriticalSection כאשר אתה רוצה להבטיח שרק THREAD אחד יבצע קטע קוד קריטי השתמש ב Mutex כאשר אתה רוצה להבטיח שרק ל THREAD אחד תהיה גישה ל RESOURCE מסוים כמובן שאפשר להתייחס לקטע קוד ב תור RESOURCE ואז למעשה להשתמש בשניהם אלא אם כן אתה רוצה לסנכרן בין שני תהליכים(שאז לתהליך אחד אין גישה למרחב הזכרון של האחר) ואז אתה חייב להשתמש עם MUTEX MUTEX הוא מקרה פרטי של Semaphore.