Standard Article

Concurrent Programming

  1. Hassan Gomaa

Published Online: 14 DEC 2007

DOI: 10.1002/9780470050118.ecse079

Wiley Encyclopedia of Computer Science and Engineering

Wiley Encyclopedia of Computer Science and Engineering

How to Cite

Gomaa, H. 2007. Concurrent Programming. Wiley Encyclopedia of Computer Science and Engineering. .

Author Information

  1. George Mason University, Fairfax, Virginia

Publication History

  1. Published Online: 14 DEC 2007


Concurrent programming refers to the development of programs that address the parallel execution of several tasks. A process or task represents the execution of a sequential program or a sequential component in a concurrent program. Each task deals with one sequential thread of execution; thus, no concurrency is allowed within a task. However, overall system concurrency is obtained by having multiple tasks executing in parallel. The tasks often execute asynchronously (i.e., at different speeds) and are relatively independent of each other for significant periods of time. From time to time, the tasks need to communicate and synchronize their operations with each other. Concurrent programming has been applied extensively in the development of operating systems, database systems, real-time systems, interactive systems, and distributed systems.


  • heavyweight processes;
  • lightweight processes;
  • database;
  • operating system;
  • distributed system;
  • interactive systems;
  • real-time systems