暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

直播速递 | TBB 开源库及并发 Hashmap 的使用

KaiwuDB 2023-11-22
255



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



END



更多技术干货,记得观看直播视频

关注 KaiwuDB B 站号,直播不迷路




往期推荐


KaiwuDB 数据库高可用方案及落地实现

数据库的 Schema 变更实现




点击“阅读原文”,直达 B站>>

文章转载自KaiwuDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论