• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2021-08-25 15:42 Aet 隐藏边栏 |   抢沙发  7 
文章评分 2 次,平均分 5.0

函数与回调

ref

  1. 包装对象的引用,在传递参数时消除对象拷贝的代价,或者将不可拷贝的对象变为可以拷贝。

reference_wrapper

  1. boost::cref
  2. boost::ref
  3. unwrap_ref

bind

  1. 适配任意的可调用对象,如函数指针、函数引用、成员函数指针、函数对象以及lambda。
  2. 第一个参数必须是一个可调用对象,之后最多接受9个参数。

function

  1. 一个函数对象的“容器”。以对象的形式封装了原始的函数指针或函数对象,能够容纳任意符合函数签名的可调用对象。
  2. clear:将函数对象置空
  3. contains:检测function是否持有一个可调用对象
  4. target:返回function对象内部持有的可调用对象的指针,为空则返回nullptr

signals2

  1. 线程安全的观察者模式。一个信号关联多个插槽,当信号发出时,所有关联的槽都会被调用。

并发编程

atomic

  1. 原子操作库。

mutex

null_mutex

  1. 无任何锁定功能的“互斥量”

mutex

  1. 独占式的互斥量

timed_mutex

  1. 独占式的互斥量,提供超时锁定功能

recursive_mutex

  1. 递归式互斥量,可多次锁定,但也需多次解锁

recursive_timed_mutex

  1. 递归式互斥量,增加了超时锁定功能

shared_mutex

  1. 读写锁

lock_guard

unique_lock

make_unique_lock

thread

  1. get_id:同线程的同名函数,获取thread::id
  2. yield:指示当前线程放弃时间片,允许其他线程运行
  3. sleep_for:线程睡眠等待一小段时间
  4. sleep_until:线程睡眠等待至一个时间点
  5. join:一直阻塞等待,直到线程结束
  6. try_join_for/try_join_until:阻塞等待一定的时间段,然后不管线程是否结束都返回
  7. detach:将thread和线程执行体手动分离

thread_guard

scoped_thread

中断线程

  1. interrupt
  2. interruption_requested

thread_group

  1. 管理一组线程,就像是一个线程池。

call_once

  1. 用于在多线程环境下仅调用一次。

condition_variable

  1. 必须要与互斥量配合使用,等待另一个线程中某个事件的发生,然后线程才继续执行。

future

  1. 用来存储异步计算得到的值。它只能持有结果的唯一一个引用。
  2. wait:阻塞等待线程的执行,知道获得future的值
  3. wait_for/wait_until:增加了超时的功能
  4. get:获取future的值
  5. valid/is_ready:future是否可用
  6. has_value,has_exception:是否有值或发生了异常

async

  1. 异步启动一个线程运行函数,返回future对象

多个future

shared_future

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2021-11-20
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享