2011-08-02 55 views
0

並行編程與異步編程有什麼不同?並行編程異步編程

我知道異步編程是用來在後臺線程/工作或在等待 工作完成像I/O。

*並行任務是否也可以是異步任務?

*異步任務可以並行嗎?

有點讓我困惑。

上述的任何示例?

回答

2

多線程,多進程和異步編程都是併發技術,您可以在單個程序中同時完成多項任務。如果你只有一個處理器/機器,這些都不是真正的「並行」。他們都只是在執行一些代碼,以便讓你「感覺」他們都在一起執行。

前兩個依靠CPU切換任務給你。您只需簡單地告訴計算機這些是您想要完成的事情,然後讓它決定如何爲各種任務分配時間和其他資源。我們將在這裏闡述線程和進程之間的差異。

異步編程意味着你的應用程序控制你想完成的這些任務的切換。一個粗略的例子是當你想要讀/寫2個I/O通道時。您的應用程序可以將數據發送到1到2的數據可用。當它發生時,它會從2中讀出數據,然後恢復發送到1,然後切換到發送數據2.這個想法是,你要等到有一些事件需要服務,然後按照每個事件在事件之間切換可用性和需求。從某種意義上說,您正在使用這些類型的應用程序手動執行進程安排。一個優點是與多個進程/線程相關聯的系統開銷不存在。許多異步例程依賴於系統調用。