0、互斥量Windows下的互斥量是个内核对象,每次WaitForSingleObject和ReleaseMutex时都会检查当前线程ID和占有互斥量的线程ID是否一致。当多次Wait**时就要对应多次ReleaseMutex, 当ReleaseMutex过多次数时如果发现当前占有互斥量的线程ID和...
分类:
编程语言 时间:
2014-12-02 01:32:01
阅读次数:
166
0、 信号量Linux下的信号量和windows下的信号量稍有不同。WindowsWindows下的信号量有一个最大值和一个初始值,初始值和最大值可以不同。 而且Windows下的信号量是一个【内核对象】,在整个OS都可以访问到。LinuxLinux下的信号量在创建的时候可以指定一个初始值,这个初始...
分类:
编程语言 时间:
2014-12-01 00:31:15
阅读次数:
266
sysfs是一种代表内核对象的机制,内核对象的属性和内核对象相互之间的关系。从sysfs的目的来看,是把原本在procfs中的,关于设备的部分独立出来,以“设备层次结构”的形式呈现。它提供了两个组件,一个内核编程接口来把这些item通过sysfs暴露出来;另外一个组件是用户接口,来view和操作这些item(对应着相应的内核对象)。从内核的角度来看,sysfs是作为一个基础架构的核心组件,所以接口很简单,要执行的任务也很简单。...
分类:
其他好文 时间:
2014-11-29 17:38:37
阅读次数:
319
1.相较于线程,进程所使用的系统资源更多。其原因在于地址空间。为一个进程创建一个虚拟的地址空间需要大量系统资源。线程只有一个内核对象和一个栈。 2.线程的入口函数 DWORD WINAPI ThreadFunc(PVOID pvParam){ DWORD dwResult = 0; ... retu...
分类:
编程语言 时间:
2014-11-28 01:02:21
阅读次数:
218
1.进程组成 一个内核对象,操作系统用它来管理进程。 一个地址空间,其中包含所有可执行文件或DLL模块的代码和数据。此外,它还包含动态内存分配,比如线程堆栈和堆的分配。 2.一个进程可以有多个线程,所有线程都在进程的地址空间中“同时”执行代码。每个进程至少要有一个线程来执行进程地址空间包含的代码。 ...
读取文件: HANDLE hFile ; // 声明文件操作内核对象句柄 hFile = CreateFile("1.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRI...
当父进程创建子进程时,子进程将继承父进程的内核对象。这时如果要控制子进程使用父进程的内核对象。可以使用SetHandleInformation设置。BOOL SetHandleInformation(HANDLE hObject, DWORD dwMask, DWORD dwFlags);改变句柄的...
分类:
其他好文 时间:
2014-11-16 11:59:22
阅读次数:
103
作者:蓝形参, 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情...
分类:
其他好文 时间:
2014-11-12 20:54:52
阅读次数:
235
一。select和epoll首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,...
分类:
其他好文 时间:
2014-11-09 06:15:34
阅读次数:
233
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个问题。互斥量也是一个内核对象,它用来...
分类:
编程语言 时间:
2014-11-05 16:25:18
阅读次数:
288