Threads are subsets of ‘Process’,
which aid in accelerating the execution of any task. The usage of
threads increases efficiency that results from the intended concurrency
in the threaded-programming practice. Threads share the same resources
as Process and hence do not have resource overheads. This property
of threads is important when processing speed becomes a criterion
to measure efficiency and if programmers use more than one thread
to complete a single process.
Today’s hardware comes with multiple processors to support
enhanced speed in processing. Multi-threaded programs which execute
on multi-processor systems and multi-core systems make the best use
of Parallelism that the hardware offers.