gpt4 book ai didi

c++ - c++11线程引入了什么样的开销?

转载 作者:太空狗 更新时间:2023-10-29 23:36:01 26 4
gpt4 key购买 nike

来自 C#/Java 编程,在程序中创建新线程往往会增加大量开销(例如,在 C# 中每个线程 1MB)。我很好奇 C++11 线程引入了什么样的开销。

最佳答案

C++ 在底层实现之上提供了一个相当薄的包装器,因此不会产生明显的额外开销。事实上,你甚至可以get a handle到底层操作系统线程,这将是一个 __gthread_t ,它是 g++ 的 pthread 句柄和 Visual C++ 的 WINAPI 线程句柄.

但是,线程确实有内在的开销,因为它们需要由操作系统调度,包含堆栈等等。

An analysis by Mark Russinovich经历了Windows下线程创建的限制。这些限制当然是由线程开销引起的,并给出:

  • 一个线程需要大约 1 MB 的虚拟地址空间(默认链接器设置)
  • 4-16 KB 的初始提交大小
  • 12-48 KB 的不可分页内存

关于c++ - c++11线程引入了什么样的开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com