1. 程式人生 > >C#中執行緒的學習

C#中執行緒的學習

        程序是作業系統中作為資源擁有的基本單位。執行緒作為系統排程和分派的基本單位。一個程式在執行時大多都只開闢一個程序,一個程序可以包含有一個或多個執行緒。執行緒是程序中的基本執行流,每個執行緒都有自己專屬的暫存器(程式計數器,棧指標等),共享程序中的資源,不同的執行緒可以執行同樣的程式碼。

        執行緒的引入顯著提高了系統的併發力度。在同一程序中,執行緒的切換不會引發程序的切換,但從一個程序中的執行緒切換到另一個程序中的執行緒時,將會引發程序的切換。而程序切換消耗cpu的資源遠遠的大於執行緒的切換。

       Thread類提供了建立並控制執行緒,設定其優先及並獲得其狀.態的方法。在使用該類是需要引用System.Threading名稱空間。下面我們建立一個簡單的執行緒:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;

namespace 多執行緒
{
    public class ThreadSimple
    {
        void TreadList()
        {
            Thread thread = new Thread(test);
        }

        private void test()
        {
        }
    }
}

在Thread類的定義中我們可以看到,該類包含有4個過載的建構函式。而傳入 的引數是一個ThreadStart委託。由於VS的簡化,我們可以直接寫方法名。

現在我們有了一個執行緒,但是我們還沒有啟動它,怎樣啟動它呢?

我們可以根據所學的英語進行猜想執行緒啟動的方法,如start或者open,當然這裡是start

我們可以在Thread thread = new Thread(test);後面新增一句thread.Start();來啟動我們的執行緒.

在Thread這個類以物件的方式提供了一些必要的例項成員,其中下面這些是比較常用的:

1.  IsAlive:判斷執行緒是否處於活動狀態

2.  Name:執行緒的名稱

3.  Priority: ThreadPriority列舉型別,代表程式的優先順序

4.  ThreadState: ThreadState列舉型別,代表執行緒的狀態。