Definition - What does Mutex mean?
Mutex is used as a synchronization primitive in situations where a resource has to be shared by multiple threads simultaneously. Named mutex objects are used for inter-process synchronization because multiple applications can access the same mutex object.
The mutex class is designed to protect a shared resource like memory, file handle or network connection from simultaneous access by multiple threads or processes. It is used in lock statement to provide serialized access to resources and ensures mutual exclusion inside the critical sections of code. It helps prevent the unpredictable data corruption that can arise if there is no synchronization. It is often used to check for a single instance of an application at a time.
Mutex is an abbreviated form of mutually exclusive.
Techopedia explains Mutex
For example, a mutex can be used to provide exclusive access to a file that has to be read or modified in a multithreaded environment.
Mutex class has a constructor that can be used to specify key parameters of a new mutex object during its initialization, such as name, ownership information and the access control security to be applied to the named mutex.
While lock statements can be used to synchronize threads within a single process, mutex is used across process boundaries.
Since mutex class is a wrapper to a Win32 construct, it requires interop transitions that result in a hit to performance. As such, it is not a good choice unless it is required for reasons like synchronization across process boundaries.