在Item37中解释过一个状态为joinable的std::thread对象其底层对应一个系统线程。std::future对象和std::thread比较类似,一个future对象也对应着一个系统线程。尽管如此这两者在析构的时候其行为也是不一样的。在Item37中已经提到过一个joinable状态的std::thread对象在析构的时候会导致程序terminate,这是因为无论是调用join还是detach都是一个糟糕的行为,这个在Item37中已经进行了解释。而本文所说的std::future对象,它的析构有的时候类似于隐式调用join,有的时候则是类似于隐式调用detach,甚至两者都不是,但是std::future不会导致程序terminate。
既然谈到了std::future,那就来进一步看一下std::future到底是什么东西,这个对象对于在异步编程中有很大的作用,可以异步获取线