Skip to product information
Groking concurrency
Groking concurrency
Description
Book Introduction
grokking concurrency!
It's okay if you don't know complex formulas and technical terms!
You can understand concurrency just by reading it!


Concurrency is a method of processing programs simultaneously by separating them into independent executions. To implement this, you need to know various technologies and concepts such as complexity, parallelism, threads, processes, multitasking, and coroutines and know how to use them appropriately.
This book explains the often-difficult concept of simultaneity through real-life examples and engaging illustrations.
It does not limit itself to a specific programming language or implementation, but rather helps you learn more fundamental concepts and principles.
In particular, concepts are explained easily with visual diagrams rather than complex formulas to ensure clear understanding, and various stories are used to attract the reader's interest.
After reading this book, you will have a complete picture of concurrency.
  • You can preview some of the book's contents.
    Preview
","
index
PART I: Octopus Orchestra: An Introduction to Simultaneity Symphony

CHAPTER 1 What is concurrency?
1.1 The Importance of Concurrency
1.2 Layers of Concurrency
1.3 What you will learn in this book

CHAPTER 2 Sequential and Parallel Execution
2.1 Looking Back: What is a Program?
2.2 Sequential execution
2.3 Sequential Computing
2.4 Parallel Execution
2.5 What is needed for parallel computing
2.6 Parallel Computing
2.7 Amdahl's Law
2.8 Gustafson's Law
2.9 Concurrency vs.
Parallelism

CHAPTER 3 How Computers Work
3.1 Processor
3.2 Runtime System
3.3 Computer System Structure
3.4 Multiple levels of concurrent hardware

CHAPTER 4 Materials for Implementing Concurrency
4.1 Steps of Concurrent Programming
4.2 Process
4.3 Thread

CHAPTER 5 Interprocess Communication
5.1 Various communication methods
5.2 Thread Pool Pattern
5.3 Cracking Passwords: Part 2

PART II: Types of Tentacles Dealing with Concurrency: Multitasking, Decomposition, and Synchronization

CHAPTER 6 Multitasking
6.1 CPU-centric and I/O-centric
6.2 Why Multitasking is Necessary
6.3 Multitasking: Bird's Eye View
6.4 Multitasking environment

CHAPTER 7 Breaking Down the Work
7.1 Analyzing Dependencies
7.2 Work Decomposition
7.3 Work Decomposition: Pipeline Pattern
7.4 Data Decomposition
7.5 Determining the size of the decomposed task

CHAPTER 8 Solving Concurrency Problems: Race Conditions and Synchronization
8.1 Shared Resources
8.2 Competition Conditions
8.3 Synchronization

CHAPTER 9 Solving Concurrency Problems: Deadlocks and Starvation
9.1 The Philosophers' Feast Problem
9.2 Deadlock
9.3 Live Rock
9.4 Starvation
9.5 Designing Synchronization
9.6 Other topics

PART III Asynchronously Moving Octopuses: Making Multiple Pizzas Simultaneously

CHAPTER 10 Non-blocking I/O
10.1 The World of Distributed Computing
10.2 Client-Server Model
10.3 Pizza Ordering Service
10.4 Blocking I/O
10.5 Non-blocking I/O

CHAPTER 11 EVENT-BASED CONCURRENTIATION
11.1 What is an event?
11.2 Callbacks
11.3 Event Loop
11.4 Input/Output Multiplexing
11.5 Event-based pizza server implementation
11.6 Reactor Pattern
11.7 Synchronizing Message Forwarding
11.8 Various input/output models

CHAPTER 12 Asynchronous Communication
12.1 Why Asynchrony Is Needed
12.2 Asynchronous Procedure Calls
12.3 Cooperative Multitasking
12.4 Future Objects
12.5 Pizza Server with Cooperative Multitasking
12.6 Asynchronous Pizza Restaurant
12.7 Conclusion: Asynchronous Model

CHAPTER 13: PRACTICE: WRITTEN CONCURRENT APPLICATIONS
13.1 So what was concurrency?
13.2 Poster Techniques
13.3 Matrix multiplication operations
13.4 Counting Distributed Words
","
Detailed image
Detailed Image 1
","
Into the book
I, too, have been caught in this fascinating web.
It was in this web that I first encountered the words concurrency and asynchrony.
It felt like I had found a hidden treasure.
It is a wild and powerful force that is difficult to handle, and if properly tamed, it can transform an ordinary program into a very powerful program.
But this treasure can only be unlocked by solving various puzzles scattered across the technological landscape: complexity, concurrency and parallelism, threads, processes, multitasking, and coroutines.
As I studied these concepts, I longed for someone who could help me understand the big picture, or someone who could teach me.
However, I have yet to find any material that can bridge the gap between theory and practice, and between each programming language, so I decided to write it myself.
This book was born against this backdrop.
It will be your guide to illuminate the path you must take in this complex maze.

This book is not suitable as an all-encompassing reference book.
Rather, it is a book that is fun to read, weaving together various stories and cultural references.
Originally planned as a theoretical guide, it evolved into its current format, featuring a variety of stories, cultural references (count them!), and interesting illustrations.
The quirky humor that reveals my love of dumplings and pizza is a bonus.
Learning parallelism doesn't have to be boring, right?

Let's unravel the mysteries of concurrency and asynchrony together with this book.
Starting from the basics of concurrency, you will learn how to use Python's cool features async and await, and the practical training will focus on Python.
It's okay if you're not fluent in Python.
The concepts and techniques we will learn are not limited to any particular language implementation.

Still, some readers may wonder, 'Why Python?'
Because Python is a language that has a perfect balance of expressiveness and simplicity.
This allows us to focus on mastering concurrency without being distracted by other factors.
And it's also my preferred language.

This book will be helpful to both experienced developers seeking a deeper understanding of concurrent systems and beginners interested in concurrency theory.
Through this book, you will not only understand the secrets of concurrency, but also gain the ability to build scalable, efficient, and resilient software systems.

It's time to embark on a journey where the program dances like an octopus, crossing the blurred boundaries of time and space.
I didn't mishear.
That's the octopus you know.
Octopuses swim in the deep sea, using their eight tentacles in perfect harmony.
It is the perfect animal to symbolize a complex yet beautiful simultaneous system.
Well then, let's begin our journey.
--- From the Author's Note
","
Publisher's Review
With everyday examples and interesting illustrations
Learn difficult concurrency easily!


Concurrency is an essential element in software engineering, an approach that divides a computer program into independently executable tasks and executes them efficiently.
To paint the big picture of concurrency, you need to understand and effectively integrate various technologies such as complexity, parallelism, threads, processes, multitasking, and coroutines.

This book explains the concepts and principles of concurrency with real-world examples so that even readers who are new to concurrency can learn them.
Instead of using stiff and boring explanations using technical terms, it explains things clearly and easily using understandable words, and unravels each aspect of simultaneity through various stories.
Additionally, complex and difficult concepts are made easier to understand using illustrations and drawings.

It provides guidance on how to draw a comprehensive picture of concurrency, how to study it going forward, and even provides Python examples for hands-on practice.
I highly recommend this book to both junior developers who want to learn concurrency concepts in depth and senior developers who want to solidify their concurrent programming skills.

What this book covers

● Writing and executing concurrent programming
● Patterns for performance, scalability, and resilience
● Choosing the right hardware
● Asynchronous communication
Non-blocking-based concurrency and event-based concurrency
"]
GOODS SPECIFICS
- Date of issue: November 13, 2024
- Page count, weight, size: 344 pages | 648g | 183*235*14mm
- ISBN13: 9791140711741

You may also like

카테고리