简要介绍下进程、线程中对象、事件、句柄都是什么啊
发布网友
发布时间:2022-05-07 22:02
我来回答
共1个回答
热心网友
时间:2022-07-01 15:19
所谓句柄实际上是一个数据,是一个Long (整长型)的数据。
句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。
从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用相应的对象。
如果想更透彻一点地认识句柄,我可以告诉大家,句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化了。如果地址总是如此变化,我们该到哪里去找该对象呢?
为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址,用来专门登记各应用对象在内存中的地址变化,而这个地址(存储单元的位置)本身是不变的。Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来保存。这样我们只需记住这个句柄地址就可以间接地知道对象具体在内存中的哪个位置。这个地址是在对象装载(Load)时由系统分配给的,当系统卸载时(Unload)又释放给系统。
句柄地址(稳定)→记载着对象在内存中的地址————→对象在内存中的地址(不稳定)→实际对象
本质:WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。
但是必须注意的是程序每次从新启动,系统不能保证分配给这个程序的句柄还是原来的那个句柄,而且绝大多数情况的确不一样的。假如我们把进入电影院看电影看成是一个应用程序的启动运行,那么系统给应用程序分配的句柄总是不一样,这和每次电影院售给我们的门票总是不同的一个座位是一样的道理。
线程是指程序的一个指令执行序列,WIN32 平台支持多线程程序,允许程序中存在多个线程。 在单 CPU 系统中,系统把 CPU 的时间片按照调度算法分配给各个线程,因此各线程实际上是分时执行的,在多 CPU 的 Windows NT 系统中, 同一个程序的不同线程可以被分配到不同的 CPU 上去执行。由于一个程序的各线程是在相同的地址空间运行的,因此设及到了如何共享内存, 如何通信等问题,这样便需要处理各线程之间的同步问题,这是多线程编程中的一个难点。
线程,也被称为轻量进程(lightweight processes)。计算机科学术语,指运行中的程序的调度单位。
线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。线程可以创建和撤消线程,从而实现程序的并发执行。一般,线程具有就绪、阻塞和运行三种基本状态。
在多*处理器的系统里,不同线程可以同时在不同的*处理器上运行,甚至当它们属于同一个进程时也是如此。大多数支持多处理器的操作系统都提供编程接口来让进程可以控制自己的线程与各处理器之间的关联度(affinity)。
进程是程序在一个数据集合上运行的过程(注:一个程序有可能同时属于
多个进程),它是操作系统进行资源分配和调度的一个独立单位,进程可以简单的分为系统进程(包括一般
Windows程序和服务进程)和用户进程
追问这个是抄的
计算机上正在运行的句柄、线程、进程分别是什么意思?
句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个...
计算机上正在运行的句柄,线程,进程分别是什么意思
句柄是微软特有的名词 句柄我记得老师说过是信号量,计算机操作系统理论里面的一个中有名词,用于管理临界资源的。进程是计算机系统管理计算机资源的单位,而线程是建基于线程之上,那进程里面的资源去执行一系列操作的。可以说进程主要是负责管理计算机资源的单位,而一个进程有多个线程,线程才是真正去执行程...
...进程句柄 线程ID 线程句柄 分别都是做什么的有什么用
单从概念上讲,句柄指一个对象的标识,而指针是一个对象的首地址。从实际处理的角度讲,即可以把句柄定义为指针,又可以把它定义为同类对象数组的索引,这两种处理方法都有优缺点,至于选用哪种方式,完全应该看实际需要,这可以说是一种程序设计上的技巧。那种单纯认为句柄是指针或索引的想法都是机械的、不确切的。 其...
任务管理器的句柄数 线程数 进程数各指什么意思?
总数 计算机上正在运行的句柄、线程和进程的总数。句柄:用于唯一标识资源(例如文件和注册表项)的值,以便程序可以访问它。线程:在运行程序指令的进程中的对象,线程允许在进程中进行并发操作,并使一个进程能在不同处理器上同时运行其程序的不同部分。进程:一个可执行程序(如WINDOWS资源管理器)或一...
什么是句柄?以及什么是句柄图形,窗口句柄等?可否为我形象的说明?谢谢...
内存中)(如打开的文件,窗口,线程对象,进程对象等)都是用句柄来表示;3)句柄相当于对象的身份证,每一个对象的句柄,在系统中唯一的;4)使用句柄,对操作系统来说,可以简化接口函数的设计(整数标识不同的资源对象);5)每个应用程序启动,操作系统底层会为其创建句柄表。
句柄是什么意思
句柄是一个计算机术语,指的是一个用于标识、引用或管理资源的唯一标识符。句柄可以是一个指针、索引或者其他形式的引用。在操作系统中,句柄常用于标识打开的文件、进程、线程、窗口、对象等资源。通过句柄,可以对这些资源进行操作、访问或释放。句柄的主要作用是实现资源的封装和管理,提供对资源的控制和...
句柄是什么 指针是什么 线程是什么
它也很能干,把所有的事情会安排得好好的。然后给你个句柄你可以使用,为程序建立进程、线程,维护起他们的ID,供你使用。其实说到底,这些概念都是一个指向一个或一段内存地址的标记。就象一个人在公司,他是设计,在家里他是孩子,在兄弟堆里,他是哥哥,本质就是一个人,在不同的场合,他有不...
电脑任务管理器进程详解?
),可执行代码,数据,对象句柄,环境变量,优先权以及设置最大化最小化的功能。每一个进程都从一个主线程开始执行,但可以在它所拥有的线程中创建额外的线程。一个进程的所有线程共享进程的虚拟地址空间和系统资源,一个线程的资源包括线程的机器寄存器设置,内核堆栈,线程环境变量和进程虚拟地址中的用户...
句柄是什么
句柄就是用来区分各种内存对象的唯一标识符号,是个32位整数。有些是整个系统唯一(如窗口句柄),有些是当前进程或线程中唯一 (如线程句柄,全局的有另一个标识符)。详细的可分为许多种,都是以H开头的。在VB中使用时全部都用Long。常见的有窗口句柄(HWND),设备描述表句柄(HDC),内存句柄(HMEM),...
什么是句柄(在计算机中的作用和使用场景)
使用句柄的步骤如下:1.创建句柄:在程序中,首先需要创建一个句柄来标识对象。句柄可以通过系统调用或编程语言提供的函数来创建。2.操作对象:通过句柄,可以对对象进行操作。根据对象的类型和属性,可以调用相应的方法来实现操作。操作的具体步骤和参数可以根据实际需求来确定。3.销毁句柄:在使用完句柄后...