Showing posts with label Concurrent Programming. Show all posts
Showing posts with label Concurrent Programming. Show all posts

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.