]
表 37.2. C++11 标准一致性
章节 |
描述 |
状态 |
注释 |
票据 |
---|---|---|---|---|
30 |
线程支持库 |
是 |
- |
- |
30.1 |
通用 |
- |
- |
- |
30.2 |
要求 |
- |
- |
- |
30.2.1 |
模板参数名称 |
- |
- |
- |
30.2.2 |
异常 |
是 |
- |
- |
30.2.3 |
原生句柄 |
是 |
- |
- |
30.2.4 |
计时规范 |
是 |
- |
- |
30.2.5 |
Lockable 类型要求 |
是 |
- |
- |
30.2.5.1 |
总的来说 |
- |
- |
- |
30.2.5.2 |
BasicLockable 要求 |
是 |
- |
- |
30.2.5.3 |
Lockable 要求 |
是 |
- |
- |
30.2.5.4 |
TimedLockable 要求 |
是 |
- |
- |
30.2.6 |
decay_copy |
- |
- |
- |
30.3 |
线程 |
是 |
- |
- |
30.3.1 |
类 thread |
是 |
- |
- |
30.3.1.1 |
类 thread::id |
是 |
- |
- |
30.3.1.2 |
thread 构造函数 |
部分 |
- |
- |
30.3.1.3 |
thread 析构函数 |
是 |
- |
- |
30.3.1.4 |
thread 赋值 |
是 |
- |
- |
30.3.1.5 |
thread 成员 |
是 |
- |
- |
30.3.1.6 |
thread 静态成员 |
是 |
- |
- |
30.3.1.7 |
thread 特化算法 |
是 |
- |
- |
30.3.2 |
命名空间 this_thread |
是 |
- |
- |
30.4 |
互斥 |
部分 |
- |
- |
30.4.1 |
Mutex 要求 |
是 |
- |
- |
30.4.1.1 |
总的来说 |
是 |
- |
- |
30.4.1.2 |
Mutex 类型 |
是 |
- |
- |
30.4.1.2.1 |
类 mutex |
是 |
- |
- |
30.4.1.2.2 |
类 recursive_mutex |
是 |
- |
- |
30.4.1.3 |
定时互斥类型 |
是 |
- |
- |
30.4.1.3.1 |
类 timed_mutex |
是 |
- |
- |
30.4.1.3.1 |
类 recursive_timed_mutex |
是 |
- |
- |
30.4.2 |
锁 |
是 |
- |
- |
30.4.2.1 |
类模板 lock_guard |
是 |
- |
- |
30.4.2.2 |
类模板 unique_lock |
是 |
- |
- |
30.4.2.2.1 |
unique_lock 构造函数、析构函数和赋值 |
是 |
- |
- |
30.4.2.2.2 |
unique_lock 加锁 |
是 |
- |
- |
30.4.2.2.3 |
unique_lock 修改器 |
是 |
- |
- |
30.4.2.2.4 |
unique_lock 观察器 |
是 |
- |
- |
30.4.3 |
通用加锁算法 |
部分 |
可变参数 |
#6227 |
30.4.4 |
调用一次 |
是 |
- |
- |
30.4.4.1 |
结构体 once_flag |
是 |
- |
- |
30.4.4.2 |
函数 call_once |
是 |
- |
- |
30.5 |
条件变量 |
是 |
- |
- |
30.5.1 |
类 condition_variable |
是 |
- |
- |
30.5.2 |
类 condition_variable_any |
是 |
- |
- |
30.6 |
期物 |
是 |
- |
- |
30.6.1 |
概述 |
部分 |
- |
- |
30.6.2 |
错误处理 |
是 |
- |
- |
30.6.3 |
类 future_error |
- |
- |
- |
30.6.4 |
共享状态 |
- |
- |
- |
30.6.5 |
类模板 promise |
是 |
- |
- |
30.6.6 |
类模板 future |
是 |
- |
- |
30.6.7 |
类模板 shared_future |
是 |
- |
- |
30.6.8 |
函数模板 async |
是 |
- |
- |
30.6.9 |
类模板 packaged_task |
是 |
- |
- |
表 37.3. 扩展
章节 |
描述 |
注释 |
---|---|---|
30.3.1.5.x |
interrupt |
- |
30.3.2.x |
中断 |
- |
30.3.2.y |
at_thread_exit |
- |
30.4.3.x |
通用加锁算法 begin/end |
- |
表 37.4. [@http://isocpp.org/files/papers/N3659.html N3659 C++ 中共享锁修订版 2] 一致性
章节 |
描述 |
状态 |
注释 |
---|---|---|---|
30.4.1.4 |
共享 Lockable 类型 |
是 |
- |
30.4.1.4.1 |
shared_mutex 类 |
是 |
- |
30.4.2.3 |
类模板 shared_lock |
是 |
- |
![]() |
注意 |
---|---|
表 37.5. std::future<T> 和相关 API 的改进]
章节 |
描述 |
状态 |
注释 |
---|---|---|---|
2.1 |
- |
- |
- |
2.2 |
类模板 future |
部分 |
- |
2.2 |
then |
部分 |
不含隐式解包 #10550 和阻塞 #10551 |
2.2 |
is_ready |
是 |
- |
2.3 |
类模板 shared_future |
部分 |
- |
2.3 |
then |
部分 |
不含隐式解包 #10550 和阻塞 #10551 |
2.3 |
is_ready |
是 |
- |
2.4 |
函数模板 when_all |
部分 |
接口不完整 #10426 和阻塞 #10551 |
2.5 |
函数模板 when_any |
部分 |
接口不完整 #10427 和阻塞 #10551 |
2.6 |
函数模板 when_any_back |
否 |
#XXXX |
2.7 |
函数模板 make_ready_future |
是 |
- |
表 37.6. C++ 闩锁和栅栏一致性
章节 |
描述 |
状态 |
注释 |
---|---|---|---|
X.1 |
类 latch |
部分 |
已添加新的类 latch。该接口是提案中接口的超集,并采用了类 barrier 的一些功能。 |
X.2 |
类 barrier |
否 |
即使 Boost.Thread 有一个类 boost:barrier,它提供的服务种类也不同。可以使用实验性的 completion_latch 来代替。 |
表 37.7. C++ 并发队列一致性
章节 |
描述 |
状态 |
注释 |
---|---|---|---|
X.1 |
概念接口 |
部分 |
提供的接口与此提案略有不同。所有具有 queue_op_status 的函数均未提供。没有无锁的具体类。 |
X.1.1 |
基本操作 |
部分 |
- |
X.1.1.1 |
push |
是 |
重命名为 push_back。 |
X.1.1.2 |
value_pop |
否 |
重命名为 pull_front,具有两种变体。 |
X.1.2 |
非等待操作 |
- |
- |
X.1.2.1 |
try_push |
是 |
重命名为 try_push_back |
X.1.2.2 |
try_pop |
是 |
重命名为 try_pull_back |
X.1.3 |
非阻塞操作 |
- |
- |
X.1.3.1 |
nonblocking_push |
是 |
重命名为 nonblocking_push_back |
X.1.3.2 |
nonblocking_pop |
是 |
重命名为 nonblocking_pull_front |
X.1.4 |
前端压入操作 |
否 |
- |
X.1.5 |
关闭的队列 |
部分 |
- |
X.1.5.1 |
close |
是 |
- |
X.1.5.2 |
is_closed |
是 |
重命名为 closed |
X.1.5.3 |
wait_push |
是 |
重命名为 wait_push_back |
X.1.5.4 |
wait_pop |
是 |
重命名为 wait_pull_front |
X.1.5.5 |
wait_push_front |
否 |
- |
X.1.5.6 |
wait_pop_back |
否 |
- |
X.1.5.6 |
open |
否 |
- |
X.1.6 |
空队列和满队列 |
是 |
- |
X.1.6.1 |
is_empty |
是 |
- |
X.1.6.2 |
is_full |
是 |
添加容量 |
X.1.7 |
队列名称 |
否 |
目前不认为是必须的。 |
X.1.8 |
元素类型要求 |
是? |
- |
X.1.9 |
异常处理 |
是? |
- |
X.1.10 |
队列排序 |
是? |
- |
X.1.11 |
无锁实现 |
否 |
等待基于锁的接口稳定。一旦 Boost.LockFree 意识到 Boost.Move,将使用它。 |
X.2 |
具体队列 |
部分 |
- |
X.2.1 |
锁定缓冲区队列 |
部分 |
类 sync_queue 和 sync_bounded_queue。 |
X.2.1 |
无锁缓冲区队列 |
否 |
等待基于锁的接口稳定。一旦 Boost.LockFree 意识到 Boost.Move,将使用它。 |
X.3 |
附加概念工具 |
否 |
- |
X.3.1 |
前端和后端 |
否 |
- |
X.3.2 |
流式迭代器 |
否 |
- |
X.3.3 |
存储迭代器 |
否 |
- |
X.3.4 |
二进制接口 |
否 |
- |
X.3.4 |
托管间接 |
否 |
- |
表 37.8. 执行器和调度器
章节 |
描述 |
状态 |
注释 |
---|---|---|---|
V.1.1 |
类 |
是 |
- |
V.1.1 |
|
是 |
重命名为函数模板 |
V.1.1 |
|
否 |
|
V.1.2 |
类 sceduled_executor |
否 |
- |
V.1.2 |
|
否 |
重命名为函数模板 |
V.1.2 |
|
否 |
重命名为函数模板 |
V.2 |
具体执行器类 |
否 |
- |
V.2.1 |
|
是 |
静态版本 |
V.2.2 |
|
是 |
- |
V.2.3 |
|
是 |
静态版本 loop_scheduler,动态版本 |
V.2.4 |
|
是 |
静态版本 |
V.2.5 |
|
是 |
静态版本 |
表 37.9. `async, future/shared_future::then` 和执行器
章节 |
描述 |
状态 |
注释 |
---|---|---|---|
30.6.6 |
|
是 |
|
30.6.7 |
|
是 |
|
30.6.8 |
|
是 |
- |
表 37.10. 执行器和调度器 - 修订版 4
章节 |
描述 |
状态 |
注释 |
||
---|---|---|---|---|---|
VI.A |
执行器概念 |
是 |
|
是 |
重命名为 |
VI.A.2 |
|
是 |
重命名为 |
||
VI.A.3 |
|
否 |
- |
||
VI.A.4 |
|
是 |
- |
||
VI.A.5 |
|
是 |
- |
||
VI.B |
|
是 |
- |
||
VI.C |
|
是 |
重命名为 |
||
VI.D |
自由函数和辅助对象 |
partial |
- |
||
VI.D |
|
否 |
- |
||
VI.D |
|
否 |
|
||
VI.D |
|
否 |
- |
||
VI.D |
|
否 |
重命名为 |
||
VI.D |
|
否 |
重命名为 |
||
VI.D |
|
部分 |
重命名为 |