|
8#
楼主 |
发表于 2006-11-22 20:55:20
|
只看该作者
呵呵 越说越有嚼头,我不知道学长是否知道伪线程的概念。还有操作系统的操作原理,呵呵概念有点大,其实我研究的也不太深,只是讲讲我个人的观点。
不知道大家有没有影像,当我们按下ctrl+Alt+Del的时候,我们可以看见很有正在运行的线程。他们实际上就是一个个main函数,当然也可以说是winmain函数,尤其是学过win32的朋友对这种观点尤其深刻。因为大家用c或者是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文件,
那么在主程序,也就是主线程里面我们通过专用的函数来启动他
比方说
int hdProcessID = ShellExecute("../proc.exe","para");
我想分析上面的函数
ShellExecute是启动可执行文件的函数,返回值是一个可以唯一标志该线程的标识符。
第二个参数就是上面main函数需要的参数
如果把上面的int 写成HINSTANCE大家可能会更接受点。
有点操作系统基础知识的人多知道,如果在主线程中我们建立个虚拟表,用来保存这些hdProcessID ,我们就可以很好地操控这些线程,所以一个系统的好坏其实就是这张表和查询方式的好坏,不知道这么说师兄是否能理解我的意思
我想师兄考虑得多线程概念不会只是ThreadBegin之类的mfc函数或类吧,这些从理论上来讲只是伪线程,只是我两站的角度不一样,你说的是win32而我说的是纯c/c++当然也利用了一些win32函数,我感觉没必要再用汇编或c去写这些接口吧
最后就是劝上面那位小兄弟,至于什么候氏之类的书建议你不要去看,他们的水平太高,写的书很让人摸不着头脑。 |
|