Programming

Concurrency

Parallelism includes multiple cores while concurrency is running multiple tasks simultaneously, not exactly at the same time but progressing one task a bit and switching to another

Actor model

An actor is an isolated process managed by the language runtime.

Erlang and Elixir natively implements them as distributed actors are core to the language design

Akka tries to bring actor support to JVM

CSP

Go and Clojure use this model. Sequential processes can be OS processes but also threads or green-threads managed at the user-space

Go routines communicating with channels

It works well but it’s limited to a single runtime, even the two go processes on the same machine cannot coordinate with this, let alone distributed machines

Is Scala’s actors similar to Go’s coroutines? - Stack Overflow

Why you can have millions of Goroutines but only thousands of Java Threads (rcoh.me)

Concurrent Programming — Erlang System Documentation v27.0.1

Links to this page

🎰