Concurrency vs Parallelism
Explore the key differences between concurrency and parallelism to enhance your understanding of Ruby system performance. This lesson uses analogies and examples to help you grasp how concurrent execution manages multiple tasks by interleaving them, while parallelism involves executing multiple tasks simultaneously. Understand these concepts to better prepare for senior Ruby developer interviews.
We'll cover the following...
Concurrency vs Parallelism
Concurrency and Parallelism are often confused to refer to the ability of a system to run multiple distinct programs at the same time. Though the two terms are somewhat related, they mean very different things. To clarify the concept, we'll borrow a juggler from a circus to use as an analogy. Consider the juggler to be a machine and the balls he juggles as processes.
Serial Execution
When programs are serially executed, they are scheduled one at a time on the CPU. Once a task gets completed, the next one gets a chance to run. Each task is run from beginning to end without interruption. The analogy for serial execution is a circus juggler who can only juggle one ball at a time. Definitely not very entertaining!
Concurrency
A concurrent program is one that can be decomposed into constituent parts and each part can be executed out ...