Boost C++ 库

...世界上最受推崇和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu,《C++ 编码标准

PrevUpHomeNext

一致性和扩展

C++11 标准线程库
C++14 标准线程库 - 已接受的变更
C++14 TS 并发扩展 V1
C++1z TS 并发 - 持续进行的提案

]

表 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

executor

-

V.1.1

add

重命名为函数模板 submit

V.1.1

num_of_pendin_closures

V.1.2

类 sceduled_executor

-

V.1.2

add_at

重命名为函数模板 scheduler::submit_at

V.1.2

add_after

重命名为函数模板 scheduler::submit_after

V.2

具体执行器类

-

V.2.1

thread_pool

静态版本 basic_thread_pool,动态版本 execduler_adaptor<basic_thread_pool>

V.2.2

serial_executor

-

V.2.3

loop_executor

静态版本 loop_scheduler,动态版本 execduler_adaptor<loop_scheduler>

V.2.4

inline_executor

静态版本 inline_executor,动态版本 execduler_adaptor<inline_executor>

V.2.5

thread_executor

静态版本 thread_executor,动态版本 execduler_adaptor<thread_executor>


表 37.9. `async, future/shared_future::then` 和执行器

章节

描述

状态

注释

30.6.6

future<T>::then

30.6.7

shared_future<T>::then

30.6.8

async

-


表 37.10. 执行器和调度器 - 修订版 4

章节

描述

状态

注释

VI.A

执行器概念

wrapper_type 重命名为 work,spawn 重命名为 submit [[VI.A.1] [thread_per_task_executor

重命名为 thread_executor

VI.A.2

thread_pool_executor

重命名为 basic_thread_pool

VI.A.3

system_executor

-

VI.A.4

loop_executor

-

VI.A.5

serial_executor

-

VI.B

executor_ref

-

VI.C

executor

重命名为 gen_executor_ref

VI.D

自由函数和辅助对象

partial

-

VI.D

make_package

-

VI.D

spawn_future

async(Ex&, ...) 类似,但返回一个阻塞的期物。

VI.D

spawn

-

VI.D

task_wrapper

重命名为 resubmitter

VI.D

set_executor

重命名为 resubmit

VI.D

function_wrapper

部分

重命名为 work



PrevUpHomeNext