blog

Multi Processing and Parallel Processing

Multi-Processing can take place in both parallel and concurrent environments. Parallelism really means the ability to run two or more tasks “simultaneously” at the same time. However, concurrency is different. Concurrency implies the ability to run two or more tasks in a time-shared manner by switching between one task to another task. Consider a uni-processor machine. It is still capable of running multiple processes concurrently but \_not\_ parallely. Once the time slice/quanta of a process expires, CPU is given to another “ready to run” process. However, on a multi-processor/multi-core machine, two or more processes or threads can run at the same time — parallelism and this subsumes concurrency. Therefore, parallelism implies concurrency but vice-versa is not true. I think this should answer the question. Parallel processing is by definition related to parallelism whereas multi-processing can be talked about in the context of both parallelism and concurrency.