2015-05-26 55 views
1

我真的無法在網上找到這個看似簡單的問題的答案。如何實現異步方法

如何實現異步方法?它涉及每次調用方法時創建一個線程,還是有更專門的操作系統服務?

我知道大多數編程語言都爲此提供了內置工具(例如async關鍵字),但我在詢問所使用的底層操作系統功能。

+0

通常,使用cpu調度程序處理異步操作。最重要的是完全取決於你使用的系統。併發方法通常運行在不同的線程上,操作系統知道如何傳遞給處理運行它們的調度器。計算機上的東西並不是真正的異步,只是CPU調度程序在這裏運行一塊,暫停它,然後在那裏運行一塊,暫停它,等等。它發生得太快,以至於它似乎對我們來說是異步的 –

回答

1

除了基本的多線程功能以外,沒有針對異步方法的特殊操作系統功能。一個方法是異步的,僅僅意味着調用者可以繼續前進而不用等待方法完成。有時調用者提供一個回調函數來通知何時該方法已完成。

根據編程語言的不同,編寫異步方法時,可能需要編寫自己處理的線程。例如,異步方法可以產生一個新的線程來處理請求,或者它可以對請求進行排隊,並且一個或多個其他線程可以將請求出隊並處理它們。請注意,「異步」方法實際上涉及一小段同步代碼,在這種情況下,產生新線程或排隊請求,主任務異步執行,通常在另一個線程中執行。