執行緒 進行乙個小結

2022-01-15 18:46:41 字數 1019 閱讀 7393

乙個正在執行的應用程式被稱為乙個程序:程序可以有乙個·或多個執行緒。程序之間是相對獨立的,乙個程序無法訪問另乙個程序的資料(除非利用分布式計算方式),乙個程序執行的失敗也不會影響其他程序的執行,windows系統就是利用程序把工作劃分為多個獨立的區域的。程序可以理解為乙個程式的基本邊界。

執行緒(thread)是程序中的基本執行單元,是作業系統分配cpu時間的基本單位,乙個程序可以包含若干個執行緒,在程序入口執行的第乙個執行緒被視為這個程序的主線程。在.net應用程式中,都是以main()方法作為入口的,當呼叫此方法時系統就會自動建立乙個主線程。執行緒主要是由cpu暫存器、呼叫棧和執行緒本地儲存器(thread local storage,tls)組成的。cpu暫存器主要記錄當前所執行執行緒的狀態,呼叫棧主要用於維護執行緒所呼叫到的記憶體與資料,tls主要用於存放執行緒的狀態資訊。

多執行緒的優點:可以同時完成多個任務;可以使程式的響應速度更快;可以讓占用大量處理時間的任務或當前沒有進行處理的任務定期將處理時間讓給別的任務;可以隨時停止任務;可以設定每個任務的優先順序以優化程式效能。

然而,多執行緒雖然有很多優點,但是也必須認識到多執行緒可能存在影響系統效能的不利方面,才能正確使用執行緒。不利方面主要有如下幾點:

(1)執行緒也是程式,所以執行緒需要占用記憶體,執行緒越多,占用記憶體也越多。

(2)多執行緒需要協調和管理,所以需要占用cpu時間以便跟蹤執行緒。

(3)執行緒之間對共享資源的訪問會相互影響,必須解決爭用共享資源的問題。

(4)執行緒太多會導致控制太複雜,最終可能造成很多程式缺陷。

當啟動乙個可執行程式時,將建立乙個主線程。在預設的情況下,c#程式具有乙個執行緒,此執行緒執行程式中以main方法開始和結束的**,main()方法直接或間接執行的每乙個命令都有預設執行緒(主線程)執行,當main()方法返回時此執行緒也將終止。

建立多執行緒的步驟:

1、編寫執行緒所要執行的方法

2、例項化thread類,並傳入乙個指向執行緒所要執行方法的委託。(這時執行緒已經產生,但還沒有執行)

3、呼叫thread例項的start方法,標記該執行緒可以被cpu執行了,但具體執行時間由cpu決定

乙個小結吧

最近準備換個公司,開始做一些整理,所以我就在想,從9.6號大一入學到現在,這麼多年我都經歷了什麼?李笑來有本書 七年就是一輩子 我想,我的這五年,其實也是過了一輩子的感覺,在若干年後,想起來,也可能會感謝讓我變的努力的這幾年 高考完後,從未想過,會變成如今這樣,曾一度認為我會去踏遍世界各地,將所有的...

開發乙個模組小結

想取得不一樣的東西,就要做不一樣的事 以前做工作,就是隨著做,沒有時間意識,雖然不是故意有一打沒一打的做,做實際上就是有一打沒一打的在做 看到別的同事一直在爭分奪秒的在做這個事,一直不是很理解,工作嘛,按計畫,按節奏完成就可以了嘛,幹嘛根和別人搶一樣 閒話不多說 這次就完成乙個框架,就是乙個筐子,把...

終止乙個執行緒

可以讓執行緒呼叫exitthread函式,以便強制執行緒終止執行 函式原型 void exitthread dword dwexitcode 該函式將終止執行緒的執行,並導致作業系統清除該執行緒使用的所有作業系統資源。但是,c 資源 如c 類物件 將不被撤消。由於這個原因,最好從執行緒函式返回,而不...