Coming from C++/C# background where locks/mutexes are considered evil due to blocking threads.
Due to how the Go goroutine scheduler works, are the Go counterpart of those primitives "different"?
Should I see the Go variants of these primitives more like yield points where the execution of a goroutine yields to let other goroutines run.
And thus not resulting in the same resource code/weight as the primitives has in other languages?