(1) 熟悉windows系統提供的執行緒建立與撤銷系統呼叫。
(2) 掌握windows系統環境下執行緒的建立與撤銷方法。
handle ceatethread(
lpsecurity_attributes lpthreadattributes,
dword dwstacksize,
lpsecurity_start_routine lpstartaddress,
lpvoid lpparameter,
dword dwcreationflags,
lpdword lpthreadid
);
引數說明
(1)lpthreadattributes:執行緒指定安全屬性為null時,執行緒得到乙個預設的安全描述符。
(2)dwstacksize:執行緒堆疊的大小其值為0時,其大小與呼叫該執行緒的執行緒堆疊大小相同。
(3)lpstartaddress:指定執行緒要執行的函式。
(4)lpparameter:函式中要傳遞的引數。
(5)dwcreationflags:指定執行緒建立後所處的狀態。若為crrate_suspended,表示建立出於掛起狀態,用resumethread()啟用執行緒才可以執行,若該值為0,表示執行緒建立後立即執行。
(6)lpthreadid:用乙個32位的變數接受系統返回的執行緒識別符號.若該值設為null,系統不返回執行緒識別符號。
返回值:如果執行緒建立成功,將返回執行緒的控制代碼;如果失敗,系統返回null,可以呼叫函式getlasterror查詢失敗的原因。
用法舉例:
static handle hhandle1=null; //用於儲存執行緒返回控制代碼的變數
dword dwthreadid1; //用於儲存執行緒識別符號的變數
//建立乙個名為threadname1的執行緒
hhandle1=ceatethread((lpsecurity_attributes)) null
0,(lpsecurity_start_routine)threadname1,
(lpdword)null,
0,&dwthreadid1);
2.撤銷執行緒
exitthread()用於撤銷當前程序
原型:void exitthread(
dword dwexitcode); //執行緒返回碼
引數說明:
dwexitcode:指定執行緒返回碼,可以呼叫getexitcodethread()查詢返回碼的含義。
返回值:該函式沒有返回值
用法舉例:exitthread(0);
4.掛起執行緒
sleep():用於掛起當前正在執行的執行緒。
原型:void sleep(dword dwmilliseconds);
引數說明:
dwmilliseconds;指定掛起時間,單位ms(毫秒)。
返回值:該函式沒有返回值。
(1) 實驗內容
使用系統呼叫creatthread()建立乙個子執行緒,並在子執行緒中顯示:thread is running!.為了能讓使用者清楚地看到執行緒的運**況,使用sleep()使執行緒掛起5s,之後使用exitthread(0)撤銷程序。
(2) 主要**
void countstar(int star_number)
}int _tmain(int argc, tchar* ar**, tchar* envp)
實現了執行緒的建立與撤銷,三個執行緒同時工作,第乙個執行緒被掛起10秒後結束,並被撤銷,隨後第二個、第三個執行緒也結束並被撤銷。 4 作業系統 程序撤銷與建立
程序的建立 建立pcb 分配儲存空間 引導程式 入就緒鏈 在unix系統中 pid fork 建立乙個子程序 父程序的複製品 execl prog,args 載入並執行乙個新的程式 程序的撤銷 去配資源 撤銷pcb 通知父程序 在unix系統中 exit vs.kill 進入作業系統判斷結束 除初始...
執行緒的建立與撤銷
1 熟悉windows系統提供的執行緒建立與撤銷系統呼叫.2 掌握windows系統環境下執行緒的建立與撤銷方法.ceatethread 完成執行緒的建立.它在呼叫程序的位址空間上建立乙個執行緒,執行指定的函式,並返回新建立的執行緒的控制代碼.原型 handle ceatethread lpsecu...
作業系統 實驗一
實驗一 一 實驗目的 1 掌握命令解釋程式的原理 2 掌握簡單的dos呼叫方法 3 掌握c語言程式設計初步。二 實驗內容和要求 內容 根據教師指定的實驗課題,完成設計 編碼 測試工作。要求 編寫類似於dos,unix的命令列解釋程式 1 自行定義系統提示符 2 自定義命令集 8 10個 3 使用者輸...