前言这本书这几年零零散散读过两三遍了,作为经典书籍,应该重复读反复读,既然我现在开始写博了,我也准备把以前觉得经典的好书重读细读一遍,并且将笔记整理到博客中,好记性不如烂笔头,同时也在写的过程中也可以加深自己理解的深度,当然同时也和技术社区的朋友们共享线程线程内部组成线程内核对象 thread ke...
分类:
编程语言 时间:
2014-11-05 00:12:06
阅读次数:
450
线程的空间开销线程内核对象。包含上下文信息。32位系统占用700字节线程环境块。包括线程的异常处理链。32位系统占用4KB用户模式栈。保存方法的参数、局部变量和返回值内核模式栈。调用操作系统的内核模式函数时,系统会将函数参数从用户模式栈复制到内核模式栈。32位系统占用12KB线程的时间开销创建时,系...
分类:
其他好文 时间:
2014-11-02 10:49:44
阅读次数:
195
线程的基础知识 线程的组成。线程有两部分组成。 1、一个是线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。 2、另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。 进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环...
分类:
编程语言 时间:
2014-10-21 00:40:53
阅读次数:
415
以下内容来自:http://blog.csdn.net/morewindows/article/details/7470936前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个问题。互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量...
分类:
编程语言 时间:
2014-10-16 23:23:13
阅读次数:
336
内容来自:http://blog.csdn.net/morewindows/article/details/7445233本篇介绍用事件Event来尝试解决这个线程同步问题。首先介绍下如何使用事件。事件Event实际上是个内核对象,它的使用非常方便。下面列出一些常用的函数。第一个CreateEven...
分类:
编程语言 时间:
2014-10-16 14:19:32
阅读次数:
264
当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程,大致做如下步骤:
1在内核对象中分配一个线程标识/句柄,可供管理,由CreateThread返回
2把线程退出码置为STILL_ACTIVE,把线程挂起计数置1
3分配context结构
4分配两页的物理存储以准备栈,保护页设置为PAGE_REA...
分类:
其他好文 时间:
2014-10-15 15:46:00
阅读次数:
216
一 、Critical Sections(功能与Mutex相同,保证某一时刻只有一个线程能够访问共享资源,但是不是内核对象,所以访问速度比Mutex快,但是没有等待超时的功能,所以有可能导致死锁,使用要小心) 当多个线程访问一个独占性共享资源时,可以使用“临界区”对象。任一时刻只有一个线程可以拥有临...
分类:
编程语言 时间:
2014-10-14 17:42:28
阅读次数:
160
在我们开始讲线程这前先了解一下线程的载体—进程。进程,它是一个正在运行的程序的实例,是一个程序在其自身的地址空间的一次执行活动。进程是资源申请、调度、和独立运行的基本单位。进程有两部分组成:
1操作系统用来管理进程的内核对象,内核对象是系统用来存放关于进程的统计信息的地方,它是操作系统内部分配的一块内存块,该内存块是一种数据结构,其成员负责维护该对象的各种信息。
2地址空间,它包含所有可执行模...
分类:
编程语言 时间:
2014-10-14 17:34:49
阅读次数:
284
多线程之线程同步Mutex (功能与Critial Sections相同,但是属于内核对象,访问速度较慢,可以被不同进程调用)
一 Mutex
互斥对象(mutex)内核对象能够确保线程拥有对单个资源的互斥访问权。实际上互斥对象是因此而得名的。互斥对象包含一个使用数量,一个线程ID和一个递归计数器。
互斥对象的行为特性与关键代码段相同,但是互斥对象属于内核对象,而关键代码...
分类:
编程语言 时间:
2014-10-09 01:21:37
阅读次数:
266
简介
由于Linux的多平台特性,任何一个重要的驱动程序都应该是可移植的与内核代码相关的核心问题是应该能够同时访问已知长度的数据项,并充分利用不同处理器的能力内核使用的数据类型主要被分成三类
类似int这样的标准C语言类型类似u32这样的有确定大小的类型像pid_t这样的用于特定内核对象的类型
本章将讨论在什么情况下使用这三种类型以及如何使用
使用标准C语言类型
当我们需要“...
分类:
系统相关 时间:
2014-10-05 16:25:48
阅读次数:
308