Welcome to tutorial no. 25 in Golang tutorial series. In this tutorial, we will learn about mutexes. We will also learn how to solve race conditions using mutexes and channels. Critical section Before jumping to mutex, it is important to understand the concept of critical section in concurrent programming. When a program runs concurrently, the parts of code which modify shared resources should not be accessed by multiple Goroutines at the same time.