Friday, March 14, 2014

Concurrent Programming Models

Distinguishing Parallel Programming and Concurrent Programming

Parallel Programming
 
Multiple-processor or multi-core programming

Concurrent Programming 
Multi-threaded programming

Concurrent Programming Models
  • Threads and lock-based Synchronization
    • Java
  • Functional programming model 
    • Pure Functions with no side-effects + Immutable Data Structures
  • Actor based message passing
    • Scala
    • Erlang
    • Clojure
  • Channel based message passing
    • Go
    • Unix processes-pipes
  • STM (Software Transactional Memory) 
    • Clojure
  • Non-blocking I/O or asynchronous I/O
    • Callback Functions
      • Node.JS: Event driven programming and Callback Functions.

No comments:

Post a Comment