TBB 开源库及并发 Hashmap 的使用 TBB 开源库是 Intel 公司开发的开源并行计算库,用于在多核平台上进行并行化程序的开发。该库使用标准 C++ 编写,提供了一个灵活的框架来实现数据并行计算。使用 TBB 可以使用户不必关注线程,只关注任务本身即可。 TBB 开源库的主要组成部分包括算法模块、流程图模块、任务调度模块、容器模块、线程局部存储模块、内存分配模块、互斥模块、时间模块、同步原语模块等。这些模块的作用如下所示: * 算法模块:提供一些通用的并行算法,如 parallel_for、parallel_while、parallel_reduce。 * 容器模块:提供对常见容器的线程安全版本实现,如 hashmap、vector、queue。 * 内存分配模块:提供一些内存分配相关的函数。 * 同步原语模块:提供对原子操作、mutex、lock 等同步原语的封装。 * 任务调度模块:提供对算法和任务驱动的调度引擎。 TBB 并发容器是 TBB 中的一个重要组成部分,提供了一些支持多线程并发访问的容器,如 concurrent_vector、concurrent_bound_queue、concurrent_priority_queue、concurrent_hash_map、concurrent_unordered_map 等。 并发 Hashmap 是一种支持多线程并发使用的容器,保存具有唯一 key 的键值对,支持并发插入、查找和擦除。并发 Hashmap 中存在两个成员类:accessor 和 const_accessor,二者称为访问器。通过访问器可以让多个线程并发的访问并发 Hashmap 中的元素。 TBB 的 allocator 是一种内存分配器,用于申请和释放内存。TBB 的 allocator 提供了一个灵活的机制来管理内存,避免了内存泄露和碎片化。 spin_rw_mutex 是一种共享互斥锁类型,具有回退和写优先级的自旋读写锁。spin_rw_mutex 提供了一个安全的机制来保护并发访问的共享资源。 TBB 开源库的使用可以使开发者更方便地实现数据并行计算,提高程序的性能和可扩展性。同时,TBB 开源库也提供了一个灵活的框架来实现任务并行计算,能够满足各种复杂的计算需求。
剩余18页未读,继续阅读
- 粉丝: 508
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 本资源库是关于“Java Collection Framework API”的参考资料,是 Java 开发社区的重要贡献,旨在提供有关 Java 语言学院 API 的实践示例和递归教育关系 .zip
- 插件: e2eFood.dll
- 打造最强的Java安全研究与安全开发面试题库,帮助师傅们找到满意的工作.zip
- (源码)基于Spark的实时用户行为分析系统.zip
- (源码)基于Spring Boot和Vue的个人博客后台管理系统.zip
- 将流行的 ruby faker gem 引入 Java.zip
- (源码)基于C#和ArcGIS Engine的房屋管理系统.zip
- (源码)基于C语言的Haribote操作系统项目.zip
- (源码)基于Spring Boot框架的秒杀系统.zip
- (源码)基于Qt框架的待办事项管理系统.zip