run, and complete in overlapping time periods. It doesn't necessarily mean they'll ever both be running at the same instant. Eg. multitasking on a single- core machine. Parallelism is when tasks literally run at the same time, e.g. on a multicore processor. Quoting Sun's Multithreaded Programming Guide
support this one way or another • Actors (Message passing via Actors) • Scala • Erlang • Elixir • Communicating sequential processes (Message passing via Channels) • Clojure's core.async • Go • Data Parallelism (Computing across Multiple Processors in Parallel Computing Environments) • Open Computing Language (OpenCL)
and/or individual computers on a network, only able to communicate with messages (so messaging came at the very beginning -- it took a while to see how to do messaging in a programming language efficiently enough to be useful)." Alan Kay