C#併發編程

注: 內容來自《C#併發編程經典實例》,只是用來記錄學習。

併發:同時做多件事。

多線程:併發的一種形式,它採用多個線程來執行程序。

線程池要求多線程繼續存在。線程池存放在任務的隊列,這個隊列能夠根據需要自行調整。相應地線程池產生了另一個重要的形式:並行處理。

並行處理: 把正在執行的大量任務分割成小塊,分配給多個同時運行的線程。(現代多核CPU,不同的核運行不同的線程)。

異步編程:併發的一種形式,它採用future模式或回調(callback)機制,以避免產生不必要的線程。(核心理念異步操作)

一個future(或promise)類型代表一些即將完成的操作。在.net中,新版future類型有Task和Task<TResult>,在老式異步編程AIP中,採用回調或事件(event),而不是future。

VS2012支持async和await這讓異步編程變得幾乎和同步(非併發)編程一樣容易。併發編程的另一種形式是響應式編程(reactive programming)。異步編程針對操作。

響應式編程:一種聲明式的編程模式,程序在該模式中對事件作出響應。

與異步編程非常類似,不過他是基於異步事件(asynchonous event)的,而不是異步操作(asynchronous operation)。異步事件沒有一個實際的“開始”,可以在任何事件發生,並且可以發生多次,例如用戶輸入。響應式編程不一定是併發的,但它與併發編程聯繫緊密。(一個併發程序會使用多種技術。大多數程序至少使用了多線程(通過線程池)和異步編程)。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章