如何快速又正确地在C++里实现锁

本文探讨了在C++中实现锁的策略,建议使用C++11或boost库,但若需自定义,应考虑选择合适的底层API(如Windows的CriticalSection或Linux的pthread),遵循RAII原则拆分锁的类设计,以及避免过度设计。文中强调了锁的可重入性、平台适配和效率问题,并提供了chromium-base-lock的示例。
摘要由CSDN通过智能技术生成

正确答案是 不要自己实现 。

从C++11开始,STL已经提供了multithreading相关的设施,包括锁这种基本的同步设施;如果很不幸的,你的生产环境被三体人锁在了C++98/03,那么你可以考虑使用boost。这个看起来乱糟糟的准标准库也提供了相关的同步设施,而且用起来的体验还和C++11的标准库非常相像。

当然,如果文章到这里就结束的话,不免有些标题党之嫌。所以,我们还是要讨论一下正题:如果你不能使用新标准,并且不想背上boost这样一个大包袱(例如一个写给自己的小工具),那么考虑自己实现一个锁也在情理之中。

然而在动手之前,有几个问题一定要想清楚,否则免不了蛋疼菊紧。

Point 0: 选好巨人的脑袋

锁作为基本的同步设施,除非你要自己写一个操作系统,否则是没有可能让你从无到有撸一个出来的。

所以首先要做的是确定你要踩在谁的脑袋上:在Windows上,你需要的是CRITICAL_SECTION 以及相关的API;在Linxu上&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值