ITPub博客

首页 > 数据库 > 国内数据库 > TBB 开源库及并发 Hashmap 的使用

TBB 开源库及并发 Hashmap 的使用

原创 国内数据库 作者:KaiwuDB 时间:2023-06-19 11:16:26 0 删除 编辑

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

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


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



直播重点回顾

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 容器,可以在保证并发操作性能的同时,维护并发操作数据的安全。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70027415/viewspace-2959508/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
上海沄熹科技有限公司(KaiwuDB)是浪潮集团旗下国产数据库战略核心承载主体,专注 AIoT 场景,「数据 + AI」双轮驱动,以企业级多模时序数据库为核心,配套时序大模型、AI 中台、数智平台及生态工具链,构建新一代物联场景数字底座。

注册时间:2023-03-07

  • 博文量
    282
  • 访问量
    281203