Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The general term for creating software that can figuratively or actually run in multiple, independent pieces simultaneously is multiprogramming.
There are few subjects in programming as tricky as this. It turns out to be amazingly simple to get multiple threads chewing on something interesting, like calculating π to 1,000,000 digits. The difficulty comes in getting each of these jobs to play nicely with each other’s memory and getting them to send information to each other so that the results of their work can be put to good use.
The code you will learn in this chapter will work on single or multiprocessor Windows systems, but it is easy enough to port to others. The concepts you will learn are also portable to any system that has threading built into the operating system.