2010年11月27日

《Win32多线程程序设计》学习笔记 第4章 同步控制 摘要

摘要: Critical SectionCritical Section(临界区) 用来实现“排他性占有”,使用范围是单一进程的各线程之间。它是:一个局部性对象,不是核心对象。快速有效率。不能同时有一个以上的critical section 被等待。无法侦测是否已被某个线程放弃。Mutexmutex是一个核心对像,可以在不同的线程间实现“排他性占有” ,甚至即使那些线程分属不同进程。它是:核心对象如果拥有mutex的那个线程结束 ,则会产生一个“abandoned”错误信息可使用Wait。。。()等待一个mutex。可以具名,因此可以被其他进程开启。只能被拥有它的那个线程释放。 SemaphoreSe 阅读全文

posted @ 2010-11-27 21:31 一颗麦粒 阅读(179) 评论(0) 推荐(0) 编辑

《Win32多线程程序设计》学习笔记 第4章 同步控制之 事件(Event Objects) 和 interlocked variables

摘要: event Event对象是一种核心对象,它的唯一目的就是成为激发状态或者未激发状态。这两种状态全由程序来控制,不会成为Wait..()函数的副作用。他们的状态完全在你的掌控之下。Mutex和semaphore就不同了,他们的状态会因为诸如WaitForSingleObject()之类的函数调用而变化。所以,你可以精确地告诉一个event对象做了什么事,以及什么时候做。创建event对象 Createsoropensanamedorunnamedeventobject.HANDLEWINAPICreateEvent(LPSECURITY_ATTRIBUTESlpEventAttributes, 阅读全文

posted @ 2010-11-27 21:02 一颗麦粒 阅读(210) 评论(0) 推荐(0) 编辑

《Win32多线程程序设计》学习笔记 第4章 同步控制之 信号量(Semaphores)

摘要: win32中的一个semaphore可以被锁住最多n次,其中n是semaphore被产生时指定的。n常常被设计成用来代表“可以锁住一份资源”的线程资源,不过并非单独一个线程就不能拥有所有的锁定。理论上,mutex是semaphore的一种退化,如果你产生一个semaphore并令最大值为1,那就是一个mutex。产生信号量(semaphore)代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->Createsoropensanamedorun 阅读全文

posted @ 2010-11-27 19:56 一颗麦粒 阅读(225) 评论(0) 推荐(0) 编辑

导航