1.Proccss的概念
用最简短的话来说,进程就是当前运行的应用程序。运行的应用程序包括exe,dll这两种文件。文件和进程的差别在与,文件是保存在磁盘上的,是静止的,计算机不会去调用文件,而进程是非静止的,正是由于着个原因,所以计算机每调用一个进程就需要一定的资源。这些资源包括内存,虚拟页面,句柄,gdi……
在.net中我门可以用Process 类,(他位于System.Diagnostics空间中)提供对正在计算机上运行的进程的访问。使用 Process类,可以获取当前运行的进程的列表,或者启动新的进程。Process 类用于访问系统进程。初始化 Process类后,可使用该类来获取有关当前运行的进程的信息。此类信息包括线程集、加载的模块(.dll 和 .exe 文件)和性能信息(如进程当前使用的内存量)。
系统进程在系统上由其进程标识符唯一标识。与许多 Windows 资源一样,进程也由其句柄标识,而句柄在计算机上可能不唯一。句柄是表示资源标识符的一般术语。即使进程已退出,操作系统仍保持进程句柄,该句柄通过 Process 组件的 Handle 属性访问。因此,可以获取进程的管理信息,如 ExitCode(通常,或者为零表示成功,或者为非零错误代码)和 ExitTime。句柄是非常有价值的资源。
2. thread的概念
进程由一个或多个线程组成。换句话说线程是将进程分成了多个小的部分.每个线程都有优先级,在较高优先级的线程完成任务的时候,较低优先级的线程可能会被迫等待。在多处理器计算机上,将多个线程移到不同的处理器上,从而对 CPU 负荷进行平衡。每个进程启动时都具有一个线程,该线程称为主线程。任何线程都可创建其他线程。进程中的所有线程共享该进程的地址空间。
在.net中可以用System.Diagnostics的ProcessThread类来与进程获相关的线程信息.用System.Threading的Thread类来创建新线程.请注意Thread类不可以用来访问其他进程的线程,他只可以用来创建一个线程而已,一定要记住这点。如果你还想对线程进行更多的操作,可以用System.Diagnostics.ProcessThread类中返回的id,通过它作为api函数的参数来操作线程。
3. module的概念
模块指的是可执行文件或动态链接库 (DLL)。每个进程包含一个或多个模块。可以使用System.Diagnostics的ProcessModule类来获得有关模块的信息,这个类中有一个很有用的属性EntryPointAddress他可以返回获取在系统加载和运行模块时运行的函数的内存地址。然后用Visual Studio6.0中的工具,查看该地址就可以知道是什么函数!然后根据函数名查看相关的资料,就可以知道这个应用程序的基本编程思路,这个功能对程序员很有用。
关于进程、线程、模块的理解
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
下一篇:HashMap底层实现整理
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
关于Python中math 和 decimal 模块的解析与实践
本文将深入探讨这math 和 decimal 模块的基础知识,并通过实际的代码示例演示它们的用法。
开发者 高精度计算 Python math 数学函数 -
关于线程安全的理解
线程安全
线程安全 -
php进程、线程理解
今天看了一篇node.js如何支持进程与多线
php进程与线程理解 php 指令集 系统资源 -
理解进程和线程
在W系统具有多线程多任务的功能。 在做一个程序时可以调用多个线程,这叫多线程
优先级 多线程 时间片 用户界面 应用程序