In the world of computing, multithreading is the task of creating a new thread of execution within an existing process rather than starting a new process to begin a function. Essentially, the task of multithreading is intended to make wiser use of computer resources by allowing resources that are already in use to be simultaneously utilized by a slight variant of the same process. The basic concept of multithreading has been around for some time, but gained wider attention as computers became more commonplace during the decade of the 1990’s.
This form of time-division multiplexing creates an environment where a program is configured to allow processes to fork or split into two or more threads of execution. The parallel execution of threads within the same program is often touted as a more efficient use of the resources of the computer system, especially with desktop and laptop systems. By allowing a program to handle multiple tasks with a multithreading model, the system does not have to allow for two separate programs to initiate two separate processes and have to make use of the same files at the same time.
While there are many proponents of multithreading, there are also those that understand the process as being potentially harmful to the task of computing. The time slicing that is inherent in allowing a fork or thread to split off from a running process is thought by some to set up circumstances where there may be some conflict between threads when attempting to share caches or other hardware resources. There is also some concern that the action of multithreading could lower the response time of each single thread in the process, effectively negating any time savings that is generated by the configuration.
However, multithreading remains one of the viable options in computer multitasking. It is not unusual for a processor to allow for both multithreading as well as the creation of new processes to handle various tasks. This allows the end user all the benefits of context switching while still making the best use of available resources.