基於 Linux 程序和執行緒設計軟體系統的規則
- 為了最小化開銷,將大量互動的執行緒放在 1 個程序中。
- 為了彈性和模組化,將互動受限的執行緒隔離到不同程序中。
- 關鍵執行緒應儘可能簡單並且應該自己控制 1 個程序。
- 保持執行緒模組化並具有明確定義的互動。
- 不要濫用執行緒,建立執行緒和協調同步都有成本。
- 可以使用 OpenMP 為每個 CPU 核分配一個執行緒。
Android 每個應用程式都是一個獨立的 Linux 程序
- 有助於模組化記憶體管理並確保一個應用程式崩潰不會影響整個系統。
- 有利於訪問控制:程序只能訪問其 UID 和 GID 允許的檔案和資源。
- 減少了資源洩漏:當程序終止時包括記憶體和檔案描述符在內的所有資源都被釋放。
Android 每個程序中都有一組執行緒
- 一個執行緒管理和更新使用者介面。
- 一個執行緒處理來自作業系統的訊號。
- 幾個執行緒管理動態記憶體分配和釋放 Java 物件。
- 一個執行緒池使用 Binder 協議接收來自系統其他部分的訊息。