非同步編程
非同步編程
.NET 與C# 每個版本發布都是有一個“主題”。即:C#1.0託管代碼→C#2.0泛型→C#3.0LINQ→C#4.0動態語言→C#5.0非同步編程。
多核心CPU超線程CPU
2.超線程處理器(CPU)指在一塊CPU中,用虛擬的方法將一個物理核心模擬成多個核心(一般情況是一個單物理核心,模擬成二個核心,也即所謂的二線程。只有當線程數比物理核心數多才能叫超線程。如四核四線程並不是超線程,而四核八線程才能叫超線程)。
3.優缺點:
1)多核心是真正的物理核心,一塊多核心的處理器(CPU),就相當於多塊單核心的處理器(CPU)相互協作。因此,從理論上說,多核心比超線程具有更高運算能力。雖然多核心比超線程的運算速度快很多,但多核心也有一個明顯的缺點,那就是多核心的使用效率比超線程處理器(CPU)低。因為,多核心在處理數據時,它們相互“合作”的並不是很完美,常常某個核心需要等待其他核心的計算數據,從而耽誤時間,被迫怠工。另外,由於目前多核心都是採用共享三級緩存,這更使多核心的CPU運算速度減慢不少。
2)超線程是用虛擬的方法將一個物理核心虛擬成多個核心,它能夠最大限度地利用現有的核心資源,具有較高性價比。
主要體現在調度和中斷上:
1.對任務的分配進行優化。使同一應用程序的任務盡量在同一個核上執行。
3.對任務的負載均衡優化。當任務在調度時,出現了負載不均衡,考慮將較忙處理器中與其他任務最不相關的任務遷移,以達到數據的衝突最小。
1. 進程 進程是應用程序的執行實例,每個進程是由私有的虛擬地址空間、代碼、數據和其它各種系統資源組成,進程在運行過程中創建的資源隨著進程的終止而被銷毀,所使用的系統資源在進程終止時被釋放或關閉。
2. 線程 線程是進程內部的一個執行單元。系統創建好進程后,實際上就啟動執行了該進程的主執行線程。主執行線程終止了,進程也就隨之終止。
每個線程都維護異常處理程序、調度優先順序和線程上下文。(線程上下文,當前執行的線程在其時間片結束時被掛起,而另一個線程繼續運行。當系統從一個線程切換到另一個線程時,它將保存被搶先的線程的線程上下文,並重新載入線程隊列中下一個線程的已保存線程上下文)
3. 關係 操作系統使用進程將它們正在執行的不同應用程序分開,.NET Framework 將操作系統進程進一步細分為System.AppDomain (應用程序域)的輕量託管子進程。
線程是CPU的調度單元,是進程中的執行單位,一個進程中可以有多個線程同時執行代碼。