Concurrency models the nondeterminism of the world outside the program. Parallelism is a performance improvement, at the cost of synchronisation for shared data. The two are orthogonal. Many programs are better written using concurrent primitives; whether they are better of with parallelism is a separate optimisation subject to tradeoffs, like all optimisations. If you can live without preemption, a single threaded world is no bad thing for correctness. Everything that touches the outside world (blocks) may be a green thread switch point though, so it&#x27;s no panacea.<p>Without hardware executing code in parallel, it&#x27;s not parallelism, BTW. It&#x27;s not semantics; it&#x27;s specific jargon that means something.