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页未读,继续阅读
- 粉丝: 499
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助