「Java言語で学ぶデザインパターン入門 マルチスレッド編」(結城 浩)を参考に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 (自律的なオブジェクト)
コードは以下に置いてあります。
https://github.com/KatagiriSo/MultiThreading