


To understand multithreading first you need to understand thread. Thread is basically a single sequential flow of activities being executed in a process. When multiple threads are executed in a process at the same time, we get the term 'Multithreading'.
For example in a web browser, we can have one thread which handles the user interface, and in parallel we can have another thread which fetches the data to be displayed. So multithreading improves the responsiveness of a system. Multithreading can also handle multiple requests from the same user
Multithreading refers to an operating systems capacity to support much execution among threads within a single process. All threads inside a process will have to share of resources such as code, data, files, and memory space with its peer thread, but stacks and registers will not be shared, and each new thread will have its own stacks and registers.
Requests from one thread do not block requests from other threads, which improves application responsiveness. Multithreading also reduces the number of computing resources used and makes them more efficient. Multithreading is the event of a system executing many threads, with the execution of these threads being of two types: concurrent and parallel multithread executions.
Concurrent execution of threads is defined as the ability of a processor to move execution resources between threads in a multithreaded process on a single processor. When each thread in a multithreaded process may execute on a distinct processor at the same time, it is referred to as parallel execution.