Any program that you write for Mac OS will need to share the processor's computing power with other programs.
Any program you write for Mac OS will almost certainly run on more than one processor at the same time. That is, even if only one user is using it, it will still be running on more than one processor.
And the majority of programs you will write will sometimes need to ask other programs somewhere, anywhere on the planet, for their help.
Apps, programs, tasks, and processes, call them what you will and draw the dividing lines where you wish, are very sociable entities; working together is the essence of their being.
Welcome to concurrent and asynchronous programming.
As developers, it is our responsibility to ensure that this cooperation between processes runs smoothly, efficiently, and reliably. It is the responsibility of this chapter to ensure that, after working...