The Harmony Virtual Machine:
Principles and Practice of Concurrent Programming This comprehensive guide
develops the principles and practice of concurrent programming with the Harmony
Virtual Machine. This comprehensive reference guide discusses key ideas such as
critical sections and problems in concurrent programming. It helps readers learn
about Peterson's algorithm for mutual exclusion, various locking mechanisms, and
concurrent data structures. The text also explains advanced synchronization
techniques, such as conditional waiting, reader/writer locks, and monitors. In
addition, this book includes deadlock and starvation concepts. It talks about
distributed systems with consensus algorithms such as Paxos and the protocols
used for authentication, such as Needham-Schroeder. Material is structured to
support theoretical understanding and practical application, making this text
useful for both students and practitioners in concurrent programming.
By the first-time
author, Barry Wittman, "Start Concurrent" is a full-fledged introduction to
concurrent programming. The book begins with basic material-from computer basics
and problem-solving techniques and goes on to introduce programming basics like
primitive types and arrays. From there, the text moves into increasingly complex
ideas like graphical user interfaces, classes, and inheritance. Important
attention is paid to the concurrent programming topic where synchronization
methods are debated in context with real-world usage. It also focuses on testing
and debugging techniques, showing readers how to practically handle errors. With
a mix of theory and example, it is an excellent entrance for a novice to the
world of concurrency programming.
These class notes
give a course outline that is conducted in-depth on concurrent programming. They
include the basic concepts of parallel programming, multi-processing, and
multi-threading. Threads' definitions and properties are presented, such as
lifecycle processes and the structure of concurrent hardware architecture. The
basic algorithms form the foundation, including Kessel's and ticket algorithms,
with semantic and the bakery algorithm as the key synchronization tools. Another
topic that the material will be discussing about concurrency issues is deadlock
and speculative multithreading. This book is a resource on getting an
easy-to-access introduction to concurrent programming principles; it is
excellent for student and professional readers who want to learn about how to
effectively manage concurrent processes in software applications.