Historically, multithreaded processes were first used to implement Operating System services, later on they migrated into different application layers.
-
Threads were applied in developing servers (file server, windowing server, etc.). Each thread within that server could serve one client, thus the response time of such a server was improved.
-
Subsequently, threads have been used at the client's side, mainly in connection with the RPC communication. Because the RPC semantics is blocking, multiple RPC operations could be in programs when issued by different threads.
-
The multiprocessor hardware made the threads packages to be used by shared-memory, parallel programs to improve their runtime performance.
-
Currently, multithreading is being utilized for fine and coarse grain parallelism (both shared and distributed memory) at the level of compilers, runtime systems and applications.
|