添加新线程时的堆栈行为
Stack behavior when adding new thread
创建新线程时堆栈会发生什么?如果它在堆栈的顶部,那么它怎么会是线程呢?!如果它没有到达线程的顶部,那么程序如何知道在哪里继续它的工作?
每个线程都有自己的堆栈。因此,如果初始线程创建了第二个线程,那么这不会影响第一个线程的堆栈。第二个线程将有自己的堆栈。因此,在这个过程中,存在两个独立的堆栈——每个线程一个。但每个线程都只使用自己的线程。操作系统可以看到这两个线程,并在从一个线程切换到另一个线程时注意设置/使用正确的堆栈。
相关文章:
- 在挂钩启动新线程时解除挂钩进程
- 如何检查第三个 API 是否在 Linux 中为 c/c++ 程序创建了一个新线程?
- 是否需要在 Timer.5 boost::asio 教程中运行新线程?
- SetTimer (带有回调函数)是否通过启动新线程来工作?
- Zmq 上下文 - 我应该在新线程中创建另一个上下文吗?
- 函数如何在不这样做的情况下在新线程上运行"as if"?
- 从 VS2013 到 VS2017 std::async 不会启动新线程
- 从传递给新线程C++的矢量中删除项目
- c++ 从成员函数创建新线程并移动对象和整个对象
- 在新线程C++中发送 http 请求
- 在新线程中访问移动的 std::string
- 使用新线程在类似于 Scott Meyer 的单例习惯用法的实现中实例化单例是否安全?
- Winapi:在类成员功能上创建新线程 - 不兼容的参数类型
- 使用新线程池而无需重新启动的新线程池后,Jemalloc的内存大大增加
- C++ std::async 不会生成新线程
- 如何从新线程 QML QT c++ 更改文本字段
- 创建一个没有父级的新Qt窗口是否也会创建一个新线程
- 如何防止Valgrind启动每个新线程的嵌入式GDBSERVERS
- 将函数传递给新线程时编译器错误
- 如何使一个方法在新线程中调用同一类中的另一个方法