WEB开发网
开发学院软件开发VC MFC教程(8)-- MFC的进程和线程 阅读

MFC教程(8)-- MFC的进程和线程

 2010-03-25 20:35:10 来源:WEB开发网   
核心提示:Win32的进程和线程概念进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成,MFC教程(8)-- MFC的进程和线程,一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,NT下有用,lpThreadAttributes描述进程初始线程(主线程

Win32的进程和线程概念

进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。

线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并发地执行;一个进程的所有线程共享它的虚拟地址空间、全局变量和操作系统资源。

之所以有线程这个概念,是因为以线程而不是进程为调度对象效率更高:

由于创建新进程必须加载代码,而线程要执行的代码已经被映射到进程的地址空间,所以创建、执行线程的速度比进程更快。

一个进程的所有线程共享进程的地址空间和全局变量,所以简化了线程之间的通讯。

Win32的进程处理简介

因为MFC没有提供类处理进程,所以直接使用了Win32 API函数。

进程的创建

调用CreateProcess函数创建新的进程,运行指定的程序。CreateProcess的原型如下:

BOOL CreateProcess(

LPCTSTR lpApplicationName,

LPTSTR lpCommandLine,

LPSECURITY_ATTRIBUTES lpProcessAttributes,

LPSECURITY_ATTRIBUTES lpThreadAttributes,

BOOL bInheritHandles,

DWORD dwCreationFlags,

LPVOID lpEnvironment,

LPCTSTR lpCurrentDirectory,

LPSTARTUPINFO lpStartupInfo,

LPPROCESS_INFORMATION lpProcessInformation

);

其中:

lpApplicationName指向包含了要运行模块名字的字符串。

lpCommandLine指向命令行字符串。

lpProcessAttributes描述进程的安全性属性,NT下有用。

lpThreadAttributes描述进程初始线程(主线程)的安全性属性,NT下有用。

1 2 3 4 5 6  下一页

Tags:MFC 教程 MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接