首页 > 解决方案 > 为什么 std::thread 缺少基本功能?

问题描述

std::thread

为什么?这样的API有什么用?

它是线程概念的基础。

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

优先级,如何使任何系统在没有优先级的情况下具有可预测的时序?

标签: c++multithreadingstdapi-designstdthread

解决方案


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

因为“堆栈”是一个实现细节。增加不一定存在的东西的大小是什么意思?

当没有优先级时更改优先级是什么意思?

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

std::thread 提供的是一个(极端实现定义)native_handle。这完全授权您以实现定义的方式执行实现定义的事情。


推荐阅读