為配合主幹穩定開發模型,並確保生態系統的平台穩定性,我們將於 2026 年起,在第 2 季和第 4 季將原始碼發布至 AOSP。如要建構及貢獻 AOSP,建議使用 android-latest-release,而非 aosp-main。android-latest-release 資訊清單分支版本一律會參照推送至 AOSP 的最新版本。詳情請參閱「Android 開放原始碼計畫變更」一文。
Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
非同步 Rust
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
在 Rust 中,非同步程式設計依賴「Future」的概念,代表可能長時間執行的作業,這些作業可能不會立即完成。這些 Future 需要機制來驅動執行和完成作業。這時非同步執行器就會派上用場。
非同步執行器負責管理及執行這些 Future。這個環境可排定期貨、輪詢進度,並最終推動期貨完成。這項工具可視為自動調度管理工具,負責處理非同步工作的複雜性,讓程式碼保持回應能力和效率。
Rust 提供各種非同步執行器,各有優點和特性。
非同步執行器
Rust 服務的執行器選擇取決於工作負載的性質。雖然 Tokio 是功能強大的非同步執行階段,但可能不是所有情境的最佳解決方案。
對於主要執行循序作業的服務,導入 Tokio 等非同步執行階段可能會造成不必要的負擔,而無法顯著提升效能。在這種情況下,單一執行緒執行器可能更適合,而且更輕量。這種做法可簡化程式碼集,並減少資源消耗量。
處理本質上具有並行或非同步作業的服務時,利用 Tokio 等非同步執行階段的功能至關重要。如要盡量提升這些情境的效能,請將執行階段設定為使用與系統可用 CPU 核心數量相符的工作站執行緒數量。這樣一來,執行階段就能有效分配工作負載,充分運用可用的處理能力。
設定工作者執行緒時,請考量整體系統環境。如果多項服務在同一部虛擬機器上積極運作,請調整每項服務的工作站執行緒數量,避免 CPU 過度使用,並確保所有作用中程序都能公平分配資源。
封鎖作業
請務必確保非同步執行階段中的背景工作執行緒,絕不會因長時間執行或同步作業而遭到封鎖。封鎖背景工作執行緒會嚴重影響執行階段處理傳入工作和維持回應能力。
如果要在背景工作執行緒上執行的函式需要執行封鎖作業,請使用 tokio::spawn_blocking。這個函式會將封鎖作業卸載至專為這類任務設計的獨立執行緒集區,避免非同步背景工作執行緒中斷,並確保服務的整體回應速度。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2026-06-18 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2026-06-18 (世界標準時間)。"],[],[]]