multithreading - 跨线程的异常传播?

标签 multithreading exception-handling c++11

关于This question .

C++11 添加了将异常编码到不同线程的能力(使用 std::exception_ptr )并恢复其传播。

我想知道这样的传播是否是自动的,也就是说:如果我无法处理线程中的异常,它是否会自动在父线程中传播?

我有点怀疑(或者它必须以某种方式明确等待 join),但我还不精通 C++11。值得注意的是,我认为在 std::future 的情况下,它可以自动存储异常。

最佳答案

传播不是自动的 thread .如果一个线程抛出,并且该异常没有被捕获,程序无论如何都会终止。
futureshared_future将在子线程中存储一个未捕获的异常。当 get 时,该异常会自动传播。叫做。

关于multithreading - 跨线程的异常传播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272306/

相关文章:

c# - 启动一个停止的线程?

multithreading - 主线程 “blocked on critical section which is abandoned”

.net - 使用Windows Runtime异步文件API来确保顺序文件访问?

c# - 服务器端技能和桌面开发技能有什么区别?

java - Spring:RestController 和 Controller 的不同异常处理程序

node.js - NodeJs 中的异常处理

c++ - 如何编写一个 C++ 函数,根据处理返回不同类型的 std::list?

c++ - 为所有异常使用一个基类有什么缺点?

c++ - -masm=intel 标志不适用于使用 Intel 语法在 gcc 编译器中运行汇编语言

c++ - 尝试创建线程安全的 std::map