c#內建了對多執行緒程式設計的支援功能,所以相對於其他語言在多執行緒方面的問題,c#這裡就已經最小化或者不復存在。在.net framework 4.0中,c#中新增了兩個與多執行緒應用程式相關的重要功能:tpl(任務執行並行庫)和plinq(並行linq)。兩者都提供對並行程式設計的支援,都可以利用多處理器,也就是多核計算機。tpl簡化了多執行緒應用程式的建立和管理,現在已經成為大多數情況下的推薦方式。
在學習以上兩個新功能之前,先回顧一下基礎。
幾乎所有的物件導向方面的招聘的筆試或者面試都會問到的乙個問題:程序和執行緒的區別?
今天在學習c#的多執行緒程式設計方面,把我的理解記錄一下:
基於程序和基於執行緒是處理多工的兩種方式。程序本質上是乙個正在執行的程式,因此 ,基於程序的多工處理允許計算機同時執行兩個或更多的程式,就比如你在瀏覽網頁的同時還可以開啟word。在基於程序的多工處理中,程式是排程程式能夠分配的最小**單元。
執行緒則是可執行**的可分派單元,在基於執行緒的多工處理中,所有的程序至少有乙個執行緒。也就是說,乙個程式能夠一次執行兩個或者更多的操作。比如你開啟乙個文字編輯器,你可以在大於檔案的同時格式化文字。
二者的不同可以這樣概括:基於程序的多工處理用來處理併發執行的程式,而基於執行緒的多工處理用於處理同乙個程式中併發執行的不同程式段。
下面簡單介紹一下執行緒在**中怎麼建立和使用:
using system.threading; //支援多執行緒的類定義在該命名空間中
建立和啟動執行緒的方式有很多,基礎的如
thread thread=new thread(obj.function); 代表執行緒的入口點,可以是類中的乙個方法
thread.start(); //啟動
thread.sleep(1000);//休眠,等待
thread.join();//等待直到執行緒結束,通常呼叫此方法是為了是程式在主線程中結束;
thread.name="sss"; //設定執行緒的時間
if(thread.isalive);//判斷執行緒是否結束
thread.isbackground=true; //設定為後台執行緒
今天太晚了,要休息了,就介紹這些最基礎的吧,明天繼續!
C 多執行緒程式設計基礎
使用執行緒有幾個原因。假設從應用程式中進行網路呼叫需要一定的時間。使用者不希望分割使用者界,並且讓使用者一直等待直到從伺服器返回乙個響應為止。使用者可以同時執行其他一些操作,或者甚至取消傳送給伺服器的請求。這些都可以使用執行緒來實現。對於所有需要等待的操作,例如,因為檔案 資料庫或網路訪問都需要一定...
多執行緒 基礎多執行緒學習分享
程序 程式是靜止,其真正執行時的程式才稱之為程序 執行緒 輕量級程序 light weight process 程序與執行緒區別 執行緒的組成 建立執行緒 主要的兩種方式 a 繼承thread類方法 步驟 1.編寫類 繼承thread 2.重寫run方法 3.建立執行緒物件 4.呼叫start方法啟...
多執行緒程式設計基礎
一直以來,自己都不會多執行緒的程式設計。今天決定好好的補補!一 多執行緒的基本概念 二 多執行緒中的重要函式 1 handle createthread lpsecurity attributes lpthreadattributes,dword dwstacksize,lpthread start...