Expert Delphi
上QQ阅读APP看书,第一时间看更新

Parallel Programming Library

Writing multithreaded code is considered to be one of the most difficult things in programming. Debugging multithreaded apps is even more difficult. When an operating system starts an app, it creates an operating process for it. In each process, there could be one or more threads running. Processors that power mobile devices typically have multiple cores. This means that there could be multiple threads executing in parallel on each core. A typical app executes in one thread, which runs on just one processor core. All other cores do nothing.

Since the very early versions of Delphi, there is a TThread class that represents the concept of the operating system thread. PPL provides the concept of TTask, which is more abstract than a thread and makes it easier to write multithreaded code. The very first thing to do in order to use PPL is to add a System.Threading unit to the uses clause of your program. Instead of creating threads directly, the library maintains on behalf of the app a self-tuning pool of threads that are used to execute tasks. Tasks can be easily synchronized. There are methods to wait for any or all tasks to complete.