マルチスレッドのデザインパターン
以下を参照しつつマルチスレッドのデザインパターンを概観し、適宜Swiftでの実装を考える。
Single Threaded Execution (同時にできない)
Immutable (不変)
Guarded Suspension (用意できるまで待つ)
Balking (用意できないならやめる)
Producer-Consumer (生産者と消費者をわける)
Read-Write Lock (書く人は一人、読むのは誰でも)
Thread-Per-Message (処理を他のスレッドに任せる)
Worker Thread (スレッドを貯めておいて仕事を振る)
Future (任せておいた仕事の結果を同期的に受け取る)
Two-Phase Termination (適切な終了処理)
Thread-Specific Storage (スレッド毎に保存できる領域を確保しておく)
Active Object (自律的なオブジェクト)
Switで実装してみた。
github.com