天天看點

黑馬程式員--線程

---------------------- ASP.Net+Android+IO開發S、.Net教育訓練、期待與您交流! ----------------------

一個程序至少一個線程。

同一個程序中多個線程之間可以“并發”執行(這裡并不是真正的并發,而是cpu在來回的切換,隻是切換的太快了,讓你以為是在并發)。

程序包含有存儲器、動态堆、靜态資料與程式代碼。

線程是程式中的一個執行流,每個線程都有自己的專有寄存器(棧指針、程式計數器等),但代碼區是共享的,即不同的線程可以執行同樣的函數。

多線程是指程式中包含多個執行流,即在一個程式中可以同時運作多個不同的線程來執行不同的任務(代碼),也即允許單個程式建立多個并行執行的線程來完成各自的任務。

建立多線程

//建立線程對象 傳入要線程執行的方法
            Thread threadFirst = new Thread(CountTime);
           //将線程設定為背景線程
            threadFirst.IsBackground = true;
            //啟動線程執行方法
            threadFirst.Start();
           

産生一個線程的4步驟:

1)編寫産生線程所要執行的方法;

2)引用System.Threading的命名空間;

3)執行個體化Thread類,并傳入一個指向線程所要運作的方法的委托(這時候線程已經産生,但還沒有運作);

4)調用Thread執行個體的Start方法,标記該線程可以被cpu執行,但具體執行時間由cpu決定。

前台線程:隻有所有的前台線程都關閉才能完成程式關閉。

背景程式:隻要所有的前台線程結束,背景線程自動結束。

---------------------- ASP.Net+Android+IO開發S、.Net教育訓練、期待與您交流! ----------------------