自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无忘无往

志在千里 始于跬步

  • 博客(5)
  • 收藏
  • 关注

原创 windows核心编程读书笔记6——内核态线程同步(1)概述

除了用户态的线程同步,我们可以使用内核对象进行线程的同步。与用户态同步相比,内核态同步耗时要多(用户态内核态切换),但内核同步能够跨进程同步,并使用灵活,以及配套的安全机制。 触发未触发状态 对于内核对象来说,均有触发及未触发状态,其状态转换规则因不同内核对象而异。利用内核对象同步,我们就利用了内核对象的这种状态转换。 等待函数 要进行内核态同步,需要使用等待函数来使为获得等待对象触发状态

2015-02-25 16:44:07 1045

原创 windwos核心编程读书笔记5——线程(5)用户态线程同步

在多线程环境下,线程同步是不可避免的话题。Windows环境下的线程同步分为:用户态同步 与 内核态同步。 下面我们先了解用户态同步的一些方法。 使用Interlocked系列函数。简单易用的函数。关键段。用来对关键资源实现独享访问。Slim读写锁。灵活的进行写独享读共享操作。条件变量。当线程要进行较为复杂的条件进行同步时,可以实现。 Interlocked系列函数。 Window

2015-02-25 11:07:02 977

原创 Windows核心编程读书笔记4——线程(4)当前线程句柄与伪句柄

在windows编程中,有时候我们会遇到需要传入作用对象句柄的函数,如GetThreadTimes(HANDLE hThread, ...)函数,允许我们获得句柄指定线程的运行时间。如果我们需要本线程的运行时间,那么只需要简单调用函数 GetCurrentThread()函数即可,其会返回当前线程的“伪”句柄。类似的,我们也有函数可以获得当前进程的句柄。 HANDLE GetCurrentTh

2015-02-10 09:57:22 2049

原创 Windows核心编程读书笔记3——线程(3) 正确编写C/C++运行库下的线程

如何在C/C++运行库下正确的启用新线程 由于C/C++的历史早于线程的出现,因此C/C++的函数并不都是线程安全的。如全局变量errno等。 这就需要一种解决方案。一种方法是利用属于每个线程的数据块,该数据块不会被线程共享,而只能够用于线程自己,这样类似errno的情况便迎刃而解。 此外,C/C++运行库针对特定函数做了改写,使其能够进行线程同步。如malloc函数,由于不能够多线程同时执

2015-02-03 11:28:36 1700

原创 Windows核心编程读书笔记2——线程(2)线程内幕

线程结构 如上一篇文章所述,系统创建线程时,会分配一个内核对象与线程栈。如下图 线程内核对象如左侧,其初始为 1、引用计数为2 2、挂起计数为1(此时线程无法运行) 3、退出代码为STILL_ACTIVE状态 4、内核对象未触发状态 5、记录线程上下文的CONTEXT结构为初始值。注意其中的SP(栈指针寄存器)与IP(指令指针寄存器)。 SP指向pfnStartAddr

2015-02-03 10:29:30 1462

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除