核心对象

news/2024/7/8 3:30:40 标签: semaphore, thread, 数据结构, file, object, api

首先让我解释什么叫做“核心对象”(kernel object)。“GDI对象”是大家比较熟悉的东西,我们利用GDI函数所产生的一支笔(pen)或一支刷(brush)都是所谓的“GDI对象”。但什么又是“核心对象”呢?

 

    你可以说核心对象是系统的一种资源(噢,这说法对GDI对象也适用),系统对象一旦产生,任何应用程序都可以开启并使用该对象。系统给予核心对象一个计数值(usage count)作为管理之用。核心对包括下列数种:

 

 

核 心 对 象

产 生 方 法

event

CreateEvent

mutex

CreateMutex

semaphore

CreateSemaphore

file

CreateFile

file-mapping

CreateFileMapping

process

CreateProcess

thread

CreateThread

 

 

    前三者用于线程的同步化:file-mapping对象用于内存映射文件(memory mapping file),processthread对象则是本节的主角。这些核心对象的产生方式(也就是我们所使用的API)不同,但都会获得一个handle作为识别;每被使用一次,其对应的计数值就加1。核心对象的结束方式相当一致,调用CloseHandle即可。

 

    process对象”究竟做什么用呢?它并不如你想象的那样,用来“执行程序代码”;不,程序代码的执行是线程的工作,“process对象”只是一个数据结构,系统用它来管理进程。


http://www.niftyadmin.cn/n/1536658.html

相关文章

什么是C Runtime函数库的多线程版本

当C Runtime函数库于20世纪70年代产生出来时,PC的内存容量还很小,多任务是个新奇观念,更别提什么多线程了。因此以当时产品为基础所演化的C Runtime函数库在多线程(multithreaded)的表现上有严重问题,无法被多线程程序…

[转帖]postgresql查看用户连接以及杀死连接的会话

postgresql查看用户连接以及杀死连接的会话 2017年10月11日 15:21:18 DB_su 阅读数 8908更多 分类专栏: postgresql版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接&#xff…

MockWebServer使用指南

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52771797 本文出自: 【HansChen的博客】 MockWebServer介绍MockWebServer能帮我们做什么MockWebServer不能帮我们做什么MockWebServer环境配置MockWebServer一般步骤MockWebServer使用方法添加预置…

[转帖]虚拟化讲座

虚拟化讲座https://www.cnblogs.com/tcicy/p/10475030.html 目录 UNIX历史Linux历史虚拟化历史 虚拟化都有哪些虚拟化分类虚拟化演示KVM特性UNIX历史 Linux历史 虚拟化历史 虚拟化都有哪些 虚拟化分类 系统级虚拟化实现 VMwareMicrosoftXenKVMOracle VM VirtualBoxBochsQEMU操作…

[转帖]程序员必知的六种隔离技术

程序员必知的六种隔离技术https://blog.csdn.net/ceshi986745/article/details/51787424 为了将我们的应用部署到服务器上,我们需要为其配置一个运行环境。从底层到顶层有这样的运行环境及容器: 隔离硬件:虚拟机 隔离操作系统:容…

highcharts例子

直接看代码 <script language"JavaScript"> $(document).ready(function() { $.ajax({type:post,url:<%basePath%>charts/getData?typecolumn,success:function(result){resulteval(result);var chart{type:column}var title {text: 班级统计 };va…

剖析VC++函数调用约定

Visual C/C 的编译器提供了几种函数调用约定&#xff0c;了解这些函数调用约定的含义及它们之间的区别可以帮助我们更好地调试程序。在这篇文章里&#xff0c;我就和大家共同探讨一些关于函数调用约定的内容。Visual C/C 的编译器支持如下的函数调用约定&#xff1a;关键字清理…

如何在Windows系统下安装Linux虚拟机

先安装虚拟机这个软件&#xff0c;然后在虚拟机里装linux。 1&#xff0c;准备&#xff0c;下载VM虚拟机&#xff0c;链接: http://pan.baidu.com/s/1z79oU 密码: vbap。和linux镜像文件&#xff0c;可以下载ubuntu&#xff1a;http://cn.ubuntu.com/download 2&#xff0c;安装…