Making the mutex program more efficient
In the previous recipe, we saw that a threaded program isn't necessarily any faster than a non-threaded program. We also saw that when we introduced mutexes, the program got horribly slow. Much of this slowness is due to switching back and forth and locking and unlocking billions of times.
The solution to all of this locking and unlocking and switching back and forth is to lock and unlock as few times as possible. And also, to update the
i variable as few times as possible and do as much work as possible in each thread.
In this recipe, we'll make our threaded program much faster and much more efficient.
Knowing how to write efficient threaded programs will help you stay away from many of the pitfalls when it comes to threading.
In order for this recipe to make sense, it's advised that you complete the two previous recipes in this chapter. Other than that, the same requirements apply here; we need the...