May 1, 2024
Updated May 10, 2025
20 minute read
Concurrency, in the realm of computer science, refers to the ability of a system to execute multiple tasks or processes in overlapping time periods. It's a fundamental concept that allows different parts of a program to make progress independently, even if they are not all running at the exact same microsecond. Think of a chef in a busy kitchen juggling multiple orders – chopping vegetables, stirring a sauce, and keeping an eye on the oven. The chef switches between these tasks, making progress on each, creating an efficient workflow. This is the essence of concurrency in computing.
ajs10z|
Find a path to becoming a Concurrency. Learn more at:
OpenCourser.com/topic/ajs10z/concurrenc
Reading list
We've selected seven books
that we think will supplement your
learning. Use these to
develop background knowledge, enrich your coursework, and gain a
deeper understanding of the topics covered in
Concurrency.
This textbook provides a comprehensive overview of parallel computing, covering topics such as parallel architectures, programming models, and performance analysis. Grama, Gupta, Karypis, and Kumar are all renowned experts in the field, and their book is considered a standard reference.
Provides a comprehensive treatment of distributed algorithms, which are used to solve problems in distributed systems. Lynch covers a wide range of topics, including synchronization, fault tolerance, and consensus. The book valuable resource for anyone interested in designing and implementing distributed systems.
Covers more advanced topics in Java concurrency, such as non-blocking synchronization, high-performance computing, and concurrency patterns. Lea's deep expertise in Java concurrency makes this book a valuable resource for experienced Java programmers who want to take their concurrency skills to the next level.
Provides a comprehensive treatment of real-time systems, which are systems that must meet strict timing constraints. Laplante covers a wide range of topics, including concurrency, scheduling, and fault tolerance. The book valuable resource for anyone interested in designing and implementing real-time systems.
Covers both the theoretical foundations of parallel programming and the practical aspects of implementing parallel algorithms on real-world systems. Wilkinson and Allen's extensive experience in the field makes the book a valuable resource for both students and practitioners.
Covers a wide range of topics in cloud computing, including concurrency. Buyya, Vecchiola, and Selvi provide a comprehensive treatment of concurrency in the context of cloud computing, including topics such as load balancing, fault tolerance, and scalability. The book valuable resource for anyone interested in designing and implementing cloud-based applications.
Focuses specifically on semaphores, a fundamental concurrency primitive, and provides a comprehensive treatment of their design, implementation, and applications. Downey's clear explanations and code examples make the book a valuable resource for anyone working with concurrency.
For more information about how these books relate to this course, visit:
OpenCourser.com/topic/ajs10z/concurrenc