By Geeks. For Geeks.

Concurrency Compared

By Anil Wadghule

In this talk we will compare different concurrency models of languages such as Ruby, Node.js, JVM (Java/Clojure STM/Scala Actor) and Erlang.

Ruby supports concurrency but wit GIL, it cant run threads parallely. We will explore options available that makes this problem irrelevant. Node.js doesn’t support concurrency or parallelism.

Node.js is single threaded. It runs an event loop which makes non blocking IO possible. We will explore why Node.js fits well to only certain types of problems only.

JVM supports native threads and thus achieves true parallelism. But in JVM memory is still shared among different objects. We will explore JVM architecture in regards with memory. Where JVM gets it wrong.

Erlang/Elixir achieves concurrency and parallelism with shared nothing, immutable data, first class processes, actor model. We will explore whether this approach is better for solving every kind of problem. Talk will have deep comparison with all of these platforms in regards with what most real world project need.