This PDF
offers a real-world understanding of concurrent programming in the Pharo
programming environment by concentrating on it. First, it introduces concurrent
programming and leads to a simple example based on which the fundamental ideas
are constructed. Some important concepts include creating processes, lifetimes,
ProcessorScheduler, priorities of processes, and scheduler rules so that one can
understand the management of the flow of executions. Discussions on important
APIs accompany working examples of semaphores, which should help developers in
their ability to learn synchronization techniques. It is designed for
programmers to acquire all the skills one would need to implement concurrent
solutions effectively in Pharo and thus can be a valuable member of any
programmer's library.
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.
This resource is aimed
primarily at explicit concurrency, where a programmer explicitly declares the
concurrent behavior within the code. It explains the nature and properties of
concurrent programs as well as the issues that arise during execution and how to
build such programs efficiently. The text also considers performance-oriented
concurrency-that is, the way to exploit a certain capability of hardware in
order to realize an increase of efficiency of a program. This material, by
taking common applications as a look and common problems present in concurrent
programming, acts as a basic guide for anyone interested in knowing the design
and implementation of robust concurrent systems.