作業系統實驗一 執行緒的建立與撤銷

2021-10-04 11:38:30 字數 1856 閱讀 7830

(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 使用者輸...