C++11 Future

来源:互联网 发布:mysql数据库常用语句 编辑:程序博客网 时间:2024/05/16 11:41
#include <iostream>#include <future>#include <chrono>#include <mutex>std::mutex gmutex;class Thread{public:Thread():_future(std::async(std::launch::async,std::bind(&Thread::Run, this))) {}virtual ~Thread() {}virtual void Run() = 0;void Start(){_future.get();}private:std::future<void> _future;};class MyThread:public Thread{public:MyThread() = default;~MyThread() {}virtual void Run() override{std::lock_guard<std::mutex> lg(gmutex);std::this_thread::sleep_for(std::chrono::seconds(1));std::cout << "Hello world" << " "<< std::this_thread::get_id()<<std::endl;}};int main(){MyThread my_thread1, my_thread2;my_thread1.Start();my_thread2.Start();}