C++ 11的線程庫啟動一個線程是非常簡單的,只需要創建一個std::thread
對象,就會啟動一個線程,并使用該std::thread
對象來管理該線程。
do_task();
std::thread(do_task);
- detach方式,啟動的線程自主在后臺運行,當前的代碼繼續往下執行,不等待新線程結束。
- join方式,等待啟動的線程完成,才會繼續往下執行。假如前面的代碼使用這種方式,其輸出就會0,1,2,3,因為每次都是前一個線程輸出完成了才會進行下一個循環,啟動下一個新線程。
std::mutex
項目擼完了再填坑。。。