|
|
8#

樓主 |
發(fā)表于 2006-11-22 20:55:20
|
只看該作者
呵呵 越說越有嚼頭,我不知道學(xué)長是否知道偽線程的概念。還有操作系統(tǒng)的操作原理,呵呵概念有點(diǎn)大,其實(shí)我研究的也不太深,只是講講我個人的觀點(diǎn)。
不知道大家有沒有影像,當(dāng)我們按下ctrl+Alt+Del的時候,我們可以看見很有正在運(yùn)行的線程。他們實(shí)際上就是一個個main函數(shù),當(dāng)然也可以說是winmain函數(shù),尤其是學(xué)過win32的朋友對這種觀點(diǎn)尤其深刻。因?yàn)榇蠹矣胏或者是c++做軟件的時候接觸的更多的是win32,尤其是mfc,但是有幾個人是直接用c/c++編程的?
我先寫個例子
int main(int num,char**para)
{
while(1)
{
wait(5);
if(para[0][0] == .....
{
}
else if(para[0][1]==.....
{
}
else if(para[0][1]==.....
{
}
else
{
}
}
}
假定上面的工程文件為porc,那么編譯后就是proc.exe文件,
那么在主程序,也就是主線程里面我們通過專用的函數(shù)來啟動他
比方說
int hdProcessID = ShellExecute("../proc.exe","para");
我想分析上面的函數(shù)
ShellExecute是啟動可執(zhí)行文件的函數(shù),返回值是一個可以唯一標(biāo)志該線程的標(biāo)識符。
第二個參數(shù)就是上面main函數(shù)需要的參數(shù)
如果把上面的int 寫成HINSTANCE大家可能會更接受點(diǎn)。
有點(diǎn)操作系統(tǒng)基礎(chǔ)知識的人多知道,如果在主線程中我們建立個虛擬表,用來保存這些hdProcessID ,我們就可以很好地操控這些線程,所以一個系統(tǒng)的好壞其實(shí)就是這張表和查詢方式的好壞,不知道這么說師兄是否能理解我的意思
我想師兄考慮得多線程概念不會只是ThreadBegin之類的mfc函數(shù)或類吧,這些從理論上來講只是偽線程,只是我兩站的角度不一樣,你說的是win32而我說的是純c/c++當(dāng)然也利用了一些win32函數(shù),我感覺沒必要再用匯編或c去寫這些接口吧
最后就是勸上面那位小兄弟,至于什么候氏之類的書建議你不要去看,他們的水平太高,寫的書很讓人摸不著頭腦。 |
|