6、C++并发与实用工具之旅

C++并发与实用工具之旅

1. 引言

从终端用户的角度来看,理想的标准库应能直接满足各种需求。对于特定应用领域,大型商业库或许能接近这一理想状态,但C++标准库并非如此。它旨在为大多数应用领域的多数人提供实用组件,即服务于所有需求的交集,而非并集。此外,它也涵盖了一些重要应用领域的支持,如数学计算和文本处理。

2. 资源管理

2.1 资源管理的重要性

任何非平凡程序的关键任务之一就是管理资源。资源是需要获取并在后续(显式或隐式)释放的东西,如内存、锁、套接字、线程句柄和文件句柄等。对于长时间运行的程序,若不及时释放资源(即“泄漏”),可能导致严重的性能下降,甚至崩溃。即使是短程序,资源泄漏也可能造成问题,如因资源短缺使运行时间大幅增加。

2.2 RAII技术

标准库组件设计为不泄漏资源,依靠构造函数/析构函数对来管理资源,确保资源不会超出负责它的对象的生命周期。这就是“资源获取即初始化”(RAII)技术,它与异常处理能正确交互。例如,标准库的锁类就使用了该技术:

mutex m; // used to protect access to shared data
// ...
void f()
{
    unique_lock<mutex> lck {m}; // acquire the mutex m
    // ... manipulate shared data ...
}

在这个例子中, unique_lock 的构造函数获取互斥锁,析构函数释放

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值