ACE线程管理机制-并发控制(2)】的更多相关文章

转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581854.html ACE Condition类属 ACE Condition类属(条件变量)提供风格与互斥体.读者/作者锁和计数信号量不同的锁定机制.当持有锁的线程在临界区执行代码时,这三种机制让协作线程进行等待.相反,条件变量通常被一个线程用于使自己等待,直到一个涉及共享数据的条件表达式到达特定的状态.当另外的协作线程指示共享数据的状态已发生变化,调度器就唤醒一个在该条件变量上挂…
转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581771.html ACE Lock类属 锁类属包含的类包装简单的锁定机制,比如互斥体.信号量.读/写互斥体和令牌等.这里我就以互斥体为例简单的介绍一下其使用方法,对其它的锁类进行一些简单的说明. 1.互斥体的使用. 互斥体用于保护共享的易变代码,也就是全局或静态数据.这样的数据必须通过互斥体进行保护,以防止它们在多个线程同时访问时损坏. 在ACE中可以通过ACE_Thread_Mu…
转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581857.html ACE Synchronization类 这一类并发控制对象一般也叫做杂项并发类,这类对象一般用得不多,这里我只是对其作一些简单的介绍. 1.Atomic_Op类 ACE_Atomic_Op类用于将同步透明地参数化进基本的算术运算中. ACE_Atomic_Op是一种模板类,锁定机制和需要参数化的类型被作为参数传入其中,重载所有算术操作符,并确保在操作前获取锁,在…
转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581793.html ACE Guard类属 与C一级的互斥体API相比较,Mutex包装为同步多线程控制提供了一种优雅的接口.但是,Mutex潜在地容易出错,因为程序员有可能忘记调用release方法(当然,C级的互斥体API更容易出错).这可能由于程序员的疏忽或是C++异常的发生而发生,然而,其导致及其严重的后果--死锁. 因此,为改善应用的健壮性,ACE同步机制有效地利用C++类…
ACE有若干可用于并发控制的类.这些类可划分为以下范畴: ACE Lock类属 ACE Guard类属 ACE Condition类属 ACE Synchronization类 由于篇幅较长,我分别写作了几个小节,点击相应链接即可查看.…
转载于:http://www.cnblogs.com/TianFang/archive/2006/12/05/583231.html 我们在前一章中使用ACE_Thread包装时,你一定已经注意到了一些不够"优雅"的地方.那一章中的大多数程序都被分解为函数.而不是对象.这是因为ACE_Thread包装需要一个全局函数名.或是静态方法作为参数.随后该函数(静态方法)就被用作所派生的线程的"启动点".这自然就使得程序员要为每个线程写一个函数.如我们已经看到的,这可能会导…
转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581369.html 有过在不同的操作系统下用c++进行过多线程编程的朋友对那些线程处理的API可能深有体会,这些API提供了相同或是相似的功能,但是它们的API的差别却极为悬殊,十分令人头痛. ACE_Thread提供了对不同OS的线程调用的简单包装,通过一个通用的接口进行处理线程创建.挂起.取消和删除等问题. 一. 线程入口函数 所有线程必须从一个指定的函数开始执行,该函数称为线程…
本文转自http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/ 支持原创.尊重原创,分享知识! 自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性.效率.本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads 线程库的实现及其不足,描述了 Linux 社区是如何看待和解决兼容性和效率这两个问题的. 一.基础知识:线程和进程 按照教科书上的定义,进…
Linux 线程实现机制分析 Linux 线程实现机制分析  Linux 线程模型的比较:LinuxThreads 和 NPTL http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/ 自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性.效率.本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads 线程库的实现及其不足,描述了 Linux 社区是…
http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/ 一.基础知识:线程和进程 按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位.在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销. 无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu.内存.文件等等),而将线程分配到某个cpu上执行.一个进程当然可以拥有多个线程,此…