代码改变世界

Chapter10-“I/O设备的同步和异步”之打开和关闭设备

2012-08-08 19:21 by java20130722, 178 阅读, 0 推荐, 收藏,
摘要:打开设备:CreateFile函数函数原型:HANDLE WINAPI CreateFile( __in LPCTSTR lpFileName, __in DWORD dwDesiredAccess, __in DWORD dwShareMode, __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes, __in DWORD dwCreationDisposition, __in DWORD dwFlagsAndAttributes, __in_opt HANDLE hTemplateFile); 首先不要被它的名字所迷惑,这个函数不仅可以打. 阅读全文

Chapter09-“内核模式下的线程同步”之互斥量内核对象

2012-08-07 16:24 by java20130722, 327 阅读, 0 推荐, 收藏,
摘要:互斥量内核对象确保线程对某一个单一资源拥有一个互斥排外的访问权限.互斥量内核对象和临界区域有点相似,不过一个处于用户态(速度快),一个处于内核态(速度慢).由于互斥量是内核对象,所以不同进程的线程也可以访问同一个互斥量;而临界区域就不行,只有同一个进程内的线程才能访问得到。 一个互斥量内核对象包括:一个使用计数(usage count), 一个线程ID(thread ID),一个递归计数(recursion counter)。线程ID标记当前拥有互斥量的线程;递归计数标记这个线程拥有互斥量的次数;下面再介绍互斥量相关函数No.1 互斥量内核对象创建函数——CreateMutex函数 HAND. 阅读全文

Chapter09-“内核模式下的线程同步”之信号量内核对象

2012-08-07 15:05 by java20130722, 174 阅读, 0 推荐, 收藏,
摘要:信号量规则如下:1.如果当前资源计数大于0,信号量处于触发状态。2.如果当前资源计数等于0,信号量处于非触发状态。3.系统不允许当前资源计数为负数。4.当前资源计数不会比资源最大值还大。 一个线程通过调用一个等待函数(传递信号量对应的句柄作为参数)获取访问资源的权限。等待函数内部会检测信号量当前的资源计数,如果资源计数值等于0,则线程阻塞,处于等待状态;如果资源计数值大于0(即信号量处于触发状态),则计数减一之后当前调用的线程处于可调度状态。 有趣的是,信号量执行测试-设置(test-set)原子式(atomically)的操作。当你用一个信号量去请求资源时,操作系统检测资源是否可用和将可用资 阅读全文

Chapter09-“内核模式下的线程同步”之可等待的计时器内核对象

2012-08-07 15:02 by java20130722, 206 阅读, 0 推荐, 收藏,
摘要:可等待的计时器是在某个时间点或一个时间周期内自动触发它们本身的内核对象。与之对应的几个函数:1)创建可等待计时器函数——CreateWaitableTimer函数HANDLE WINAPI CreateWaitableTimer( __in_optLPSECURITY_ATTRIBUTES lpTimerAttributes, __inBOOL bManualReset, __in_optLPCTSTR lpTimerName );第一个参数指定安全属性,第二个参数如果是TRUE,则表示是手动设置通知的计时器;如果是FALSE,则表示是异步计时器。第三个参数指定计时器名。2)打开一个已经创建的 阅读全文

IT人士常喝点菊花茶泡枸杞

2012-08-07 14:23 by java20130722, 167 阅读, 0 推荐, 收藏,
摘要:我们知道枸杞子功能补肾益脑,菊花清凉明目.经常服用菊花茶泡枸杞可以有效地改善和保护电脑工作者的视力.这是大家应该知道的,那么菊花茶泡枸杞还有什么更多的作用呢?下面就做一介绍。 枸杞,"补肾生精,养肝,明目,坚精骨,去疲劳,易颜色,变白,明目安神,令人长寿。"现代医学证实,枸杞对经常感到疲劳、体力不济的所谓“亚健康”人群有明显疗效。 功效疏散风热,平肝明目,清热解毒。用于风热感冒,发热头痛,目赤昏花,肝肾不足,目暗昏花,眩晕惊风,治肝阳上亢,头痛眩晕,善疏风清热,清肝泻火,兼能益阴明目,故可用治肝经风热,或肝火上攻所致目赤肿痛,共奏疏风清肝明目之效;清热解毒,尤善解疔毒,故可 阅读全文

Chapter09-"内核模式下的线程同步"之事件内核对象

2012-08-05 16:46 by java20130722, 189 阅读, 0 推荐, 收藏,
摘要:有两种事件内核对象:自动事件和手动事件。当手动事件被触发时,所以该事件的等待线程都编程可调度状态;而自动事件被触发时,只有个一个等待该事件线程变成可调度状态。 下面再逐个讲解Event的相关函数:a)创建事件函数——CreateEvent函数: HANDLE CreateEvent( PSECURITY_ATTRIBUTESpsa, BOOLbManualReset, BOOLbInitialState, PCTSTRpszName); 具体的函数参数及用法,请查看上面的超链接。b)第二创建事件的函数——CreateEventEx函数: HANDLE CreateEventEx( PSECU. 阅读全文

Chapter09-"内核模式下的线程同步"之等待函数

2012-08-05 11:37 by java20130722, 183 阅读, 0 推荐, 收藏,
摘要:概述: 用户模式下的线程同步(user-mode thread synchronization)一个明显的优点是速度快;如果你非常在意程序的性能,则最好使用用户模式下的线程同步。但是用户模式下也有一定的缺点限制:interlocked lock APIs只能对一个值进行操控,而不能使得一个线程处于等待状态;你可以用Critical Section系列函数使某个线程处于等待状态,但是你稍有不慎则有可能陷入死锁。 所以在某些情况下,内核模式的线程同步(kernel-mode thread synchronization)是一个不错的选择。等待的函数(waitfunctions)DWORD Wait 阅读全文

CSDN博客积分系统

2012-08-04 16:34 by java20130722, 296 阅读, 0 推荐, 收藏,
摘要:转自:http://blog.csdn.net/csdnproduct/article/details/6633893 博客积分是衡量博客水平的重要标准,博客的排名也将按照积分排列。积分规则具体如下:1、每发布一篇原创或者翻译文章:可获得10分2、每发布一篇转载文章:可获得2分3、博主的文章每被评论一次:可获得1分4、每发表一次评论:可获得1分(自己给自己评论、博主回复别人对自己博文的评论不获得积分)5、每篇博文阅读次数每超过100次:可获得1分,阅读加分最高加到100分,即每篇文章点击上万次截止6、文章被投票:顶1票加1分,踩1票减1分7、文章被管理员或博主本人删除,相应减去博主原来基于该篇 阅读全文

Chapter08-用户模式下的线程同步

2012-08-03 21:15 by java20130722, 210 阅读, 0 推荐, 收藏,
摘要:Cache Lines 如果想编写一个能够在多核上高效率的程序,你就有必要理解Cache Lines.学过《操作系统》应该都知道,CPU从物理内存中读取内容的时候不是每次读取一个字节,而是读取多个字节的数据放入Cache Line之中。一个Cache Line可能是32、64或128个字节(总之是2的指数),并且它们一般都是按照32、64或128字节数对齐的。 值得注意的是,在多核上的Cache Line进行内存更新时可能会出现问题,看下面这个实例:1.CPU1读取内存中一个字节,顺便会将附近的几个字节一起读进Cache Line。2.CPU2读取和CPU1中一样的那个字节,顺带也读取了这个字 阅读全文

探秘Java垃圾回收机制

2012-08-03 00:03 by java20130722, 160 阅读, 0 推荐, 收藏,
摘要:垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再使用的对象。GC通过确定对象是否被活动对象引用来确定是否收集该对象。GC首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。 引用计数收集器 引用计数是垃圾收集器中的早期策略。在这种方法中,堆中每个对象(不是引用)都有一个引用计数。当一个对象被创建时,且将该对象分配给一个变量,该变量计数设置为1。当任何其它变量被赋值为这个对象的引用时,计数加1(a = b,则b引用的对象+1),但当一个对象的.. 阅读全文
上一页 1 ··· 41 42 43 44 45 46 47 48 49 ··· 58 下一页