Chapter 34. Concurrency
Until now, all the applications we’ve written in this book have been single-threaded. In simplistic terms, this means that only one thing is happening in the application at any given time, such as responding to a button click, updating the display, or counting the number of objects in an array.
Of course, in some cases, it’s very useful to be able to do many things at once. In a modern operating system, each application is running in its own process; this division gives each application its own memory space, but it also allows the task scheduler to create the illusion that many applications are running at once.
Threads give this same power to individual processes. Each thread in a process has its own stack, ...