ACE中的栅栏(Barrier)
栅栏有一个好名字,因为它恰切地描述了栅栏应做的事情。一组线程可以使用栅栏来进行共同的相互同步。组中的每个线程各自执行,直到到达栅栏,就阻塞在那里。在所有相关线程到达栅栏后,它们就全部继续它们的执行。就是说,它们一个接一个地阻塞,等待其他的线程到达栅栏;一旦所有线程都到达了它们的执行路径中的“栅栏点”,它们就一起重新启动。
在ACE中,栅栏在ACE_Barrier类中实现。在栅栏对象被实例化时,它将要等待的线程的数目会作为参数传入。一旦到达执行路径中的“栅栏点”,每个线程都在栅栏对象上发出wait()调用。它们在这里阻塞,直到其他线程到达它们各自的“栅栏点”,然后再一起继续执行。当栅栏从相关线程那里接收了适当数目的wait()调用时,它就同时唤醒所有阻塞的线程。
ACE_Barrier barrier(n_threads);
barrier.wait();
主线程创建一个栅栏,并将其传递给工作者线程。每个工作者线程都在就要退出前在栅栏上调用wait(),从而使它们在完成工作后和就要退出前阻塞住。主线程也在就要退出前阻塞。一旦所有线程(包括主线程)执行结束,它们就会一起退出。
ACE_Atomic_Op类用于将同步透明地参数化进基本的算术运算中。ACE_Atomic_Op是一种模板类,锁定机制和需要参数化的类型被作为参数传入其中。ACE是这样来实现此机制的:重载所有算术操作符,并确保在操作前获取锁,在操作后释放它。运算本身被委托给通过模板传入的的类。
//Global mutable and shared data on which we will perform simple
//arithmetic operations which will be protected.
ACE_Atomic_Op<ACE_Thread_Mutex,int> foo;
分享到:
相关推荐
ACE中文资料chm,支持全文搜索,从网上下载并整理。
ACE库入门(中文)
最新ace的中英文两个版本,同时支持pc和手机。非常漂亮的后台界面。 基于bootstrap3的开源免费后台模板。
ace admin1.4 最新版中文模板,bootstarp3.3.6,jquery2.1 以及表格插件jqGrid5.0
在vue中使用ace编辑器 (https://ace.c9.io/)
1553B总线ACE芯片BC操作[借鉴].pdf
ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南
ACE头文件ACE头文件ACE头文件ACE头文件ACE头文件ACE头文件ACE头文件ACE头文件
而且,因为ACE是开放源码的自由软件,你无需担心被锁定在特定的操作系统平台或编译器上。l 更好的软件质量:ACE的设计使用了许多可提高软件质量的关键模式,这些质量因素包括通信软件灵活性、可扩展性、可复用性和...
ACE中文文档
ACE论文,实例及程序员教程,介绍ACE相关的知识。
ACE中文文档,详细讲解了ACE库的使用,不要错过,好东西
ace中文文档(程序员教程) 上篇:ace技术论文集 中篇:ace程序员教程 下篇:ace应用实例
ACE_Allocator,ACE中的分配器类的接口类;ACE_Static_Allocator,管理固定大小的内存;ACE_Cached_Allocator,预先分配内存池,其中含有特定数目和大小的内存chunk;ACE_New_Allocator,为C++ new和delete操作符提供...
C++网络编程 卷2 基于ACE和框架的系统化复用.pdf
ace 1.3.3 官方最新版本-ace使用教程ace bootstrap模版 ace中文版 详细介绍如下链接 http://www.u9vip.com/?p=653 该资源本为收费版本,先整理分享给大家。
很全面的Ace Admin1.3官方文档,包含有最全面的组件及例子,适合急需使用该技术开发的人。 响应式Bootstrap网站后台管理系统模板ace admin,非常不错的轻量级易用的admin后台管理系统,基于Bootstrap3,拥有强大的...
通过在运行时将服务与应用动态链接进应用,并在一个或多个进程或线程中执行这些服务,ACE使系统的配置和重配置得以自动化。 本论文描述ACE的结构和功能,并使用来自像电信、企业级医学成像和WWW服务这样的领域的例子...
ace前端框架ace前端框架