为什么std :: thread缺少基本功能?

Hex*_*nal 0 c++ multithreading api-design std stdthread

std::thread:

  • 线程创建时没有堆栈大小.
  • 没有线程优先级.

为什么?这种API有什么用?

它是线程概念的基础.

堆栈大小,为什么我们不关心内存?也许作者只假设Linux和Windows具有分页内存和64位地址空间,但是没有分页内存的平台呢?

优先事项,如何使任何系统具有可预测的时间而没有优先级?

Cal*_*eth 7

因为每个平台都必须提供API.您仍然可以使用针对没有线程的平台的C++实现.

因为"堆栈"是一个实现细节.增加不一定存在的东西的大小意味着什么?

是什么意思更改优先级时,有没有一个优先?

C++以抽象机为目标.实现将抽象机映射到目标机器(它本身可能是抽象的).该标准非常努力地不限制它不必要的区域中的实现.

什么std::thread 提供是一个(定义极其实现)native_handle.这完全授权您以实现定义的方式执行实现定义的事物.