C# 線程、進(jìn)程、多線程還傻傻分不清楚,通俗易懂的告訴你,線程開銷你知道多少.....

C# 線程、進(jìn)程、多線程還傻傻分不清楚,
線程是什么呢?
進(jìn)程又是什么呢?
多線程又是什么,項(xiàng)目上怎么開啟多線程呢?
我就不多說了,直接進(jìn)入主題..........
我都都知道電腦任務(wù)管理器中,總是會(huì)看到很多的進(jìn)程,我們長(zhǎng)話短說,如有不對(duì),請(qǐng)?jiān)u論區(qū)留言,共同探討進(jìn)步。
一、什么是進(jìn)程、線程、多線程等等。
1、進(jìn)程:一個(gè)正在運(yùn)行的程序,就是一個(gè)進(jìn)程。
2、線程:一個(gè)進(jìn)程中會(huì)包含若干個(gè)線程,每個(gè)線程執(zhí)行相應(yīng)的子任務(wù)。
3、多線程:一個(gè)項(xiàng)目中開啟多個(gè)線程(子任務(wù))。
二、開啟線程,線程開銷有哪些?
1、線程的空間開銷:
(1)Thread內(nèi)核數(shù)據(jù)占用:OSID和Context。
(2)用戶堆棧模式:程序找那個(gè)使用的“局部變量”和“參數(shù)傳遞”所使用的堆棧。
[用戶堆棧:系統(tǒng)會(huì)分配1M的空間用于“用戶堆棧”,即一個(gè)線程通常分配1M內(nèi)存,用于參數(shù)傳遞、局部變量]
(3)內(nèi)核堆棧模式
在CLR線程操作的時(shí)候,通常會(huì)調(diào)用win32底層方法(即通常說的函數(shù))。
2、線程的時(shí)間開銷
(1)、資源使用的通知開銷。
【運(yùn)行一個(gè)程序,通常會(huì)加載很多的DLL(動(dòng)態(tài)鏈接庫(kù))、exe(可執(zhí)行文件)、元數(shù)據(jù)等】
(2)、時(shí)間片切換開銷。
總結(jié):對(duì)于項(xiàng)目上線程的使用,我們隨便使用線程會(huì)適得其反,根據(jù)具體情況具體分析,有項(xiàng)目例子,大家 想學(xué)習(xí)的留下郵箱。好了,下次再繼續(xù)分享更多關(guān)于C#的小知識(shí)。