西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識(shí) → 簡單實(shí)例說明多線程是怎么實(shí)現(xiàn)的

簡單實(shí)例說明多線程是怎么實(shí)現(xiàn)的

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2012/5/28 18:56:47字體大。A-A+

作者:佚名點(diǎn)擊:196次評論:0次標(biāo)簽: 多線程

  • 類型:網(wǎng)絡(luò)共享大。4.3M語言:中文 評分:.0
  • 標(biāo)簽:
立即下載

由一個(gè)簡單的例子來分析多線程的執(zhí)行,先看看簡單的例子,代碼如下:

class Program
    {
        static int count = 0;

        static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                Thread t = new Thread(Run);
                t.Name = i.ToString();
                t.Start();
            }

            Console.Read();
        }

        static void Run()
        {
            ++count;
            Console.WriteLine("當(dāng)前線程:{0},Count值為:{1}", Thread.CurrentThread.Name, count);
        }

程序在本機(jī)上的執(zhí)行結(jié)果,如上圖所示。如果電腦的Cpu比較好的,可能執(zhí)行的結(jié)果跟單線程差不多。

下面來分析下執(zhí)行結(jié)果:

for循環(huán)依次開了十個(gè)線程,然后調(diào)用了線程的Start方法。Start方法在MSDN的摘要為:導(dǎo)致操作系統(tǒng)將當(dāng)前實(shí)例的狀態(tài)更改為 System.Threading.ThreadState.Running。要注意的是調(diào)用線程的Start方法,并不代表線程能馬上啟動(dòng)起來(也許CPU正在忙其他的事情)。如何判斷線程真的執(zhí)行起來呢,只需要借助線程的IsAlive屬性。
接下來,只根據(jù)上面的執(zhí)行結(jié)果,看程序到底是如何跑的。

"線程0",啟動(dòng),線程立刻進(jìn)入執(zhí)行狀態(tài),執(zhí)行Run()方法,靜態(tài)字段count加1,輸出當(dāng)前線程名稱,以及Count值。
"線程1",啟動(dòng),線程立刻進(jìn)入執(zhí)行狀態(tài),執(zhí)行Run()方法,靜態(tài)字段count加1,執(zhí)行輸出,沒有完成輸出。
"線程2",啟動(dòng),線程立刻進(jìn)入執(zhí)行狀態(tài)。執(zhí)行Run()方法,靜態(tài)字段count加1,立即輸出當(dāng)前線程名稱,以及Count值。
"線程1" 完成輸出。
"線程3",啟動(dòng),線程立刻進(jìn)入執(zhí)行狀態(tài)。執(zhí)行Run()方法,靜態(tài)字段count加1,立即輸出當(dāng)前線程名稱,以及Count值。
"線程4",啟動(dòng),線程立刻進(jìn)入執(zhí)行狀態(tài)。執(zhí)行Run()方法,靜態(tài)字段count加1,還未執(zhí)行輸出。
"線程5",啟動(dòng),線程立刻進(jìn)入執(zhí)行狀態(tài)。執(zhí)行Run()方法,靜態(tài)字段count加1,還未執(zhí)行輸出。
"線程4",完成執(zhí)行輸出。
"線程5",完成執(zhí)行輸出。
下面的結(jié)果就不分析了。

如何保證靜態(tài)字段Count加一后,完成輸出,下一個(gè)線程才能調(diào)用Run方法,也就是說Run方法,在當(dāng)前線程執(zhí)行完后,下一個(gè)線程才能執(zhí)行。在實(shí)際編程中,這是經(jīng)常會(huì)遇到的。
我知道的有兩個(gè)方法(都是對臨界資源進(jìn)行加鎖),第一個(gè)使用lock,第二個(gè)是借助于Monitor的Enter、Exit方法。兩個(gè)方法都需要一個(gè)靜態(tài)的Object對象,當(dāng)做臨界資源。代碼如下:

 static object lockObj = new object();
 
   lock (lockObj)
            {
                ++count;
                Console.WriteLine("當(dāng)前線程:{0},Count值為:{1}", Thread.CurrentThread.Name, count);
            }

static void Run()
        {
            Monitor.Enter(lockObj);
            ++count;
            Console.WriteLine("當(dāng)前線程:{0},Count值為:{1}", Thread.CurrentThread.Name, count);
            Monitor.Exit(lockObj);
        }

    網(wǎng)盤
    (268)網(wǎng)盤
    網(wǎng)盤是什么網(wǎng)盤是一個(gè)云存儲(chǔ)工具,通俗的來說就是你把文件通過網(wǎng)盤儲(chǔ)存在網(wǎng)絡(luò)上。只要你登上網(wǎng),不論在什么地方都能使用。相當(dāng)于網(wǎng)絡(luò)移動(dòng)盤。用起來挺方便。網(wǎng)盤哪個(gè)好其實(shí)這個(gè)毋庸置疑的百度云網(wǎng)盤是最好的,目前網(wǎng)盤也就那么幾家,對用戶來說只要免費(fèi)就行了,其他的對我們的普通用戶來說并不是特別重要。網(wǎng)盤下載客戶端大全說明西西軟件園提供市面上主流網(wǎng)盤的客戶端下載,除了網(wǎng)盤客戶端的各種版本之外,西西還會(huì)提供一些網(wǎng)盤相...更多>>
    360云盤
    (12)360云盤
    云盤繼面向所有用戶推出永久免費(fèi)空間后再次發(fā)力,免費(fèi)贈(zèng)送用戶大容量空間寓意六六大順。這次的活動(dòng)為的云盤添加了不少新用戶。云盤除了提供最基本的文件上傳下載服務(wù)外,還提供文件實(shí)時(shí)同步備份功能,只需將文件放到云盤目錄,云盤程序?qū)⒆詣?dòng)上傳這些文件至云盤云存儲(chǔ)服務(wù)中心,同時(shí)當(dāng)在其它電腦登錄云盤時(shí)自動(dòng)同步下載到新電腦,實(shí)現(xiàn)多臺(tái)電腦的文件同步。西西為大家提供了云盤官方最新版下載云盤手機(jī)版下載。...更多>>
    • 360云盤v6.6.0.1308 官方最新版

      02-14 / 14.8M

      推薦理由:360云盤是360公司推出的免費(fèi)網(wǎng)盤工具,而且沒有空間大小限制,和百度云、騰訊微云一樣都是國內(nèi)好用的免費(fèi)網(wǎng)
    • 360云盤Android手機(jī)版V7.2.5 官方安

      01-20 / 8.1M

      推薦理由:360云盤iPhone版及Android版實(shí)現(xiàn)在移動(dòng)端設(shè)備管理查看云盤內(nèi)容,讓您使用云盤更方便!軟件介紹:360安全衛(wèi)士
    • 360云盤Mac同步版V2.1.0 官方版

      07-23 / 3.9M

      推薦理由:360云盤是國內(nèi)最安全、最穩(wěn)定、最快、最大的免費(fèi)網(wǎng)盤,提供無上限的網(wǎng)盤存儲(chǔ)空間。適用系統(tǒng):Mac OS X 10.7
    • 360云盤v6.6.0.1301 綠色優(yōu)化版

      10-20 / 16.9M

      推薦理由:8月22日2013百度大會(huì),百度云盤1T永久空間領(lǐng)取活動(dòng),隨后360也推出了1T空間活動(dòng)。這些版本應(yīng)該是活動(dòng)后的升
    • 360云盤同步版V1.9.5.1391 官方安裝

      07-07 / 7.6M

      推薦理由:如果你想像360安全衛(wèi)士那樣使用360云盤,擁有一個(gè)屬于自己的漂亮界面,請選擇360云盤獨(dú)立版。如果您希望簡潔
    • 360云盤iPhone手機(jī)版V6.3.3 官方版

      10-28 / 65.6M

      推薦理由:大家好!在360云盤迷你版、獨(dú)立版相繼發(fā)布后得到了很多用戶的反饋,很多用戶希望我們云盤盡快支持移動(dòng)端設(shè)備

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)