I would have expected that you would be asking the difference between
multithreading and parallel processing, which is simply a matter of using
sequential processor [multithreading] to simulate simultaneous data streams from multiple processors [parallel processing] while the terms you did inquire concerning are various terms of varying complexity which refer to the simultaneous accomplishment of various tasks.
A multithreading processor alternates the application of tasks to alternating clock cycles of the same processor.
A parallel processor has a matrix of multiple processors assigned to diverse tasks with streaming data from each clock cycle of the same processor for the same task.
multitasking simply means the simultaneous accomplishment of multiple tasks by any means including cyber or human.
Multiprogramming is the simultaneous operation of various alogorithms
where none are halted to allow the others to proceed, which process can be accomplished through with either parallel processors or a multithreaded processor.
Prior to the existence of multiple processors in a single CPU (ex. Core Duo) or even Multithreaded Processors [Pentium Four, PPC], certain types of looping algorithmic methods could be applied [and this programmer did apply such] to multiple tasks to create
the appearance that the tasks were accomplished simultaneously.
The latter was more of a
Trompe l'Oeil
×