boost::thread总结

本文详细介绍了Boost库中的互斥锁(boost::mutex, boost::timed_mutex)和共享锁(boost::shared_lock)的使用方法,包括lock()、unlock()、try_lock()、timed_lock()等API的特性及应用场景。通过实例展示了如何在并发编程中合理利用这些工具,提升程序的并发性能和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. boost::mutex

    lock() 会一直等待,直到获得一个互斥体

    unlock() 释放互斥体

    try_lock() 不会等待,它只会在互斥体可用时才获得,否则返回false


2. boost::timed_mutex

    timed_lock(time), 试图在一定时间内获得互斥体


3. boost::lock_guard

    会在构造函数调用lock(), 析构函数调用unlock()。是一个RAII用语

    提供了一个模板类

    使用:boost:mutex mutex; 

                boost::lock_guard<boost:mutex> lock(mutex);


4. boost::uniqu_lock

    跟lock_guard的行为是一样的,是RAII用语。

    这个所谓的独占锁意味着一个互斥量同时只能被一个线程获取。 其他线程必须等待,直到互斥体再次被释放。


5. boost::shared_lock

    提供了非独占锁, 只需要读访问的线程不需要知道同一时间其他线程是否访问。 因此非独占锁可以共享一个互斥体。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值