Shared-State Concurrency

After reading the chapter 8 in CTMCP, I wirte this post gives an alternative way to implement concurrency model by adding cells.

Programming With Concurrency

By now, we have seen many different apporoach to write concurrent programs. And before introduce to Shared-State Concurrency. Let's list all the approaches to implement concurrency.

  • Sequential Programming
  • Declarative Programming
  • Message-Passing Concurrency
  • Shared-State Concurrency

Sequential Programming

In a sequential model, there is a total order among all opertions. This is the strongest order invariant a program can have. And this variant model is deterministic.

Declarative Concurrency

This does not change the result of a calculation, but only changes the order in which the result is obtained.

These models have nondeterminism in the implementation, since the system choose how to advance the threads.

The demand-driven concurrent model, also known as lazy execution, is a form of declarative concurrency. It does not change the result of a calculation but only affects how much calculation is done to obtain the result.

Message-Passing Concurrency

Message passing is a basic programming style of stateful concurrent model. It extends the declarative model with a simple kind of communication channel, a port.

Shared-State Concurrency

Shared state is another basic programming style of the stateful concurrent model. It consists of a set of threads accessing a set of shared passive object.


iOS Developer / Rails / Elixir

Maine, USA
blog comments powered by Disqus