About This eBook by Bart De Smet

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

O'Reilly logo

Mutexes

Mutual exclusion of code executing simultaneously is the essential idea to tame the concurrency monster. In fact, the concept of a mutex got its name from it. Semaphores are the generalization of mutexes and are discussed in the next section.

Using a mutex, we could make our running example thread safe as follows. This piece of code illustrates the two main operations invoked with a mutex:

static void Main(){    var mutex = new Mutex();    int n = 0;    var up = new Thread(() =>    {        for (int i = 0; i < 1000000; i++)        {            mutex.WaitOne();            n++;            mutex.ReleaseMutex();        }    });    up.Start();    for (int i = 0; i < 1000000; i++)    {        mutex.WaitOne();

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required