写点什么

TBB 开源库及并发 Hashmap 的使用

作者:KaiwuDB
  • 2023-06-19
    上海
  • 本文字数:879 字

    阅读完需:约 3 分钟

TBB 开源库及并发 Hashmap 的使用

线上沙龙 - 技术流第 32 期回放来啦


本期直播我们邀请 KaiwuDB 高级研发工程师康俊,为大家分享 TBB 开源库及并发 Hashmap 的使用。康俊老师在 Raft 一致性协议优化、分布式存储与调度、高可用双活容灾、多 Region 地理分区等分布式处理模块研发领域具备丰富经验,现负责 KaiwuDB 基础数据结构研发与设计。


欢迎大家点击观看本次直播回放,通过了解 TBB 开源库及学习如何使用并发 Hashmap 容器,为多线程操作下的代码开发提供数据的高性能并行计算,同时还能保障数据并发操作的安全 ↓↓↓


https://www.bilibili.com/video/BV1n8411Z7p2/


直播重点回顾


01 TBB 开源库


在多线程环境下,数据操作将面临一个问题,即如何保证并发操作下数据的安全。使用 std 提供的标准容器,需要开发者通过加锁方式保证并发安全,无疑将增加代码开发的难度。


而 TBB 是 intel 使用标准 C++ 编写的开源并行计算库,编写该库是为了实现数据并行计算的能力。使用 TBB 提供的 C++ 模板库,可以使用户不必关注线程,只需关注任务本身。


在 TBB 内划分为了多个模块,包括算法模块、流程图模块、任务调度模块、容器模块、线程局部存储模块、内存分配模块、互斥模块、时间模块、同步原语模块等。


  • 算法模块:提供通用的并行算法,如 parallel_for, parallel_for_each, parallel_invoke;

  • 容器模块:提供对常见容器的线程安全版本实现,如 Hashmap, vector, queue;

  • 内存分配模块:提供内存分配相关的函数;

  • 同步原语模块:提供对原子操作、mutex、lock 等同步原语的封装;

  • 任务调度模块:提供对算法和任务驱动的调度引擎。 


02 TBB 并发容器


在容器模块中,包含了 concurrent_vector、concurrent_queue、concurrent_bounded_queue 等多个并发容器,通过使用这些容器,可以实现不同业务间的并发操作安全。


03 并发 Hashmap 介绍及使用


容器模块也包含 concurrent_hash_map,它是一种支持多线程并发使用的 Hashmap 容器,有着较好的并发操作性能。该容器保存具有唯一 Key 的键值对,并且支持并发插入、查找、擦除等功能。


同时,该容器支持迭代器功能。使用并发 Hashmap 容器,可以在保证并发操作性能的同时,维护并发操作数据的安全。

用户头像

KaiwuDB

关注

还未添加个人签名 2021-04-29 加入

KaiwuDB 是浪潮集团控股的数据库企业,公司汇聚了全球顶尖的数据库人才,以多模数据库为核心产品,面向工业物联网、数字能源、交通车联网、智慧产业等各大行业领域,提供领先创新的数据服务软件。

评论

发布
暂无评论
TBB 开源库及并发 Hashmap 的使用_KaiwuDB_KaiwuDB_InfoQ写作社区