From my understanding a process is a program in execution. Where multiprocessing is where a processor is executing multiple programs though not necessarily in parallel since programs can be time multiplexed on a single processor.
Multithreading is similar but like one abstract layer up where parts of a program can be broken up into pieces called threads which are given time on a processor/processors. These threads, being part of the same program can share resources more readily among threads of the same program.
Both multithreading and multiprocessing are used to give a sense of improved performance since many programs and parts of programs are I/O dependent among other things.(Like imagine the millions of CPU cycles wasted if your computer was just waiting for a keyboard input when it could be used updating what you see in your screen).
Latest Answers