C 多執行緒程式設計以及常用方法

2021-07-22 12:12:51 字數 1192 閱讀 2636

一、1. 執行緒是什麼,為什麼使用執行緒不贅述

2. 使用執行緒要引入命名空間 system.threading;

3. 執行緒函式通過委託(threadstart,parameterizedthreadstart)傳遞,可以不帶引數,也可以帶object引數(只能有乙個引數),可以用乙個類或結構體封裝引數。

4. 新開乙個執行緒,執行緒函式通過委託傳遞,方式很多。如下

private void button1_click(objectsender, eventargs e)

private void run1()

thread.sleep(500);

}private void run2(objectmny)

thread.sleep(500);

messagebox.show(money.tostring());

}5.執行緒常用方法

5.1 建立並啟動乙個執行緒,run作為要執行的方法,執行緒狀態變為running

thread   t1 = new

thread(new

threadstart(run));

t1.start();

5.2 執行緒掛起一段時間(3秒),執行緒狀態改為waitsleepjoin,然後繼續執行(狀態running)。即執行緒暫停3秒

t1.sleep(3*1000);

5.3  終止執行緒,在呼叫此方法的執行緒t1引發 threadabortexception,以開始終止此執行緒的過程。

呼叫此方法通常會終止執行緒,執行緒狀態變為stopped。abort之前最好判斷下執行緒當前狀態,用到isalive屬性

if (t1.isalive)  //如果此執行緒已經開始但尚未正常終止或中止,則為true,否則為false

//如果abort乙個尚未啟動的執行緒,該執行緒將中止start 呼叫。

如果abort被阻止或正在休眠的執行緒,該執行緒中斷然後終止。

5.4 設定優先順序。分為5個優先順序:highest,abovenormal,normal,belownormal,lowest,優先順序從高到低,但是作業系統不保證遵循這個優先順序

t1.priority =threadpriority.highest;     //先設定優先順序,再start

常用多執行緒方法

reentrantlock類 synchronized關鍵字,屬於悲觀鎖。可重入鎖,即遞迴鎖。指在同一執行緒內,外層函式獲得鎖之後,內層遞迴函式仍然可以獲得該鎖。作用 防止在同一執行緒中多次獲取鎖而導致死鎖發生。j a.util.concurrent.atomic包下的atomicreference...

C 多執行緒程式設計

一 thread 基礎 程序 當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。執行緒 執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區是共享的,即不同的執行緒可以執行同樣的函式 方...

C 多執行緒程式設計

乙個程序通常定義為程式的乙個例項。在win32中,程序佔據4gb的位址空間。與它們在ms dos和16位windows作業系統中不同,win32程序是沒有活力的。這就是說,乙個win32程序並不執行什麼指令,它只是佔據著4gb的位址空間,此空間中有應用程式exe檔案的 和資料。exe需要的任意dll...