Skip to content

Grokking Concurrency

Python、Java、C#、Scala、F#、Rust、Haskell、Clojure で学ぶ並行処理プログラミング


概要

本サイトは「Grokking Concurrency」(Kirill Bobrov 著)の学習コンパニオンとして、並行処理プログラミングの概念を複数の言語で実装しながら日本語で解説します。


多言語統合解説

8 つの言語を横断的に比較し、並行処理の本質言語固有の表現を統合的に解説します。

Part トピック 統合記事
I 並行処理の基礎 逐次処理の言語別比較
II プロセスとスレッド スレッド生成・管理の API 比較
III マルチタスキング イベント駆動モデルの比較
IV 並列パターン Fork/Join・パイプラインの比較
V 同期と排他制御 Lock/STM/所有権の比較
VI ノンブロッキング I/O Reactor パターンと I/O モデル比較
VII 非同期プログラミング async/await と Future/Promise 比較
VIII 分散並列処理 MapReduce と並列コレクション比較

詳細は 多言語統合解説 概要 を参照


言語別学習ガイド

言語 特徴 主要な並行処理機能
Python 動的型付け、シンプル threading, multiprocessing, asyncio
Java JVM、エンタープライズ ExecutorService, CompletableFuture
C# .NET、モダン構文 Task, async/await, TPL
Scala 関数型+オブジェクト指向 Future, Akka Actor
F# .NET 関数型 Async, MailboxProcessor
Rust メモリ安全、ゼロコスト std::thread, Rayon, tokio
Haskell 純粋関数型 STM, async, forkIO
Clojure Lisp 系、JVM atom, ref/STM, core.async

学習トピック

本シリーズでは以下のトピックを扱います:

Part トピック キーワード
I 並行処理の基礎 逐次処理、パフォーマンス測定
II プロセスとスレッド Process、Thread、スレッドプール
III マルチタスキング タイムシェアリング、スケジューリング
IV 並列パターン Fork/Join、パイプライン
V 同期と排他制御 Lock、Semaphore、デッドロック
VI ノンブロッキング I/O イベントループ、Reactor
VII 非同期プログラミング asyncio、async/await
VIII 分散並列処理 MapReduce、分散処理

参考資料