日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【C/C++开发】C++11 并发指南二(std::thread 详解)

發(fā)布時間:2023/12/18 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C/C++开发】C++11 并发指南二(std::thread 详解) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

上一篇博客《C++11 并發(fā)指南一(C++11 多線程初探)》中只是提到了 std::thread 的基本用法,并給出了一個最簡單的例子,本文將稍微詳細(xì)地介紹 std::thread 的用法。

std::thread 在 <thread> 頭文件中聲明,因此使用 std::thread 時需要包含 <thread> 頭文件。

std::thread 構(gòu)造

default (1)initialization (2)copy [deleted] (3)move (4)
thread() noexcept;
template <class Fn, class... Args> explicit thread (Fn&& fn, Args&&... args);
thread (const thread&) = delete;
thread (thread&& x) noexcept;
  • (1). 默認(rèn)構(gòu)造函數(shù),創(chuàng)建一個空的 thread 執(zhí)行對象。
  • (2). 初始化構(gòu)造函數(shù),創(chuàng)建一個 thread對象,該 thread對象可被 joinable,新產(chǎn)生的線程會調(diào)用 fn 函數(shù),該函數(shù)的參數(shù)由 args 給出。
  • (3). 拷貝構(gòu)造函數(shù)(被禁用),意味著 thread 不可被拷貝構(gòu)造。
  • (4). move 構(gòu)造函數(shù),move 構(gòu)造函數(shù),調(diào)用成功之后 x 不代表任何 thread 執(zhí)行對象。
  • 注意:可被 joinable 的 thread 對象必須在他們銷毀之前被主線程 join 或者將其設(shè)置為 detached.

std::thread 各種構(gòu)造函數(shù)例子如下(參考):

#include <iostream> #include <utility> #include <thread> #include <chrono> #include <functional> #include <atomic>void f1(int n) {for (int i = 0; i < 5; ++i) {std::cout << "Thread " << n << " executing\n";std::this_thread::sleep_for(std::chrono::milliseconds(10));} }void f2(int& n) {for (int i = 0; i < 5; ++i) {std::cout << "Thread 2 executing\n";++n;std::this_thread::sleep_for(std::chrono::milliseconds(10));} }int main() {int n = 0;std::thread t1; // t1 is not a threadstd::thread t2(f1, n + 1); // pass by valuestd::thread t3(f2, std::ref(n)); // pass by referencestd::thread t4(std::move(t3)); // t4 is now running f2(). t3 is no longer a threadt2.join();t4.join();std::cout << "Final value of n is " << n << '\n'; }

move 賦值操作

move (1)copy [deleted] (2)
thread& operator= (thread&& rhs) noexcept;
thread& operator= (const thread&) = delete;
  • (1). move 賦值操作,如果當(dāng)前對象不可 joinable,需要傳遞一個右值引用(rhs)給 move 賦值操作;如果當(dāng)前對象可被 joinable,則 terminate() 報錯。
  • (2). 拷貝賦值操作被禁用,thread 對象不可被拷貝。

請看下面的例子:

#include <stdio.h> #include <stdlib.h>#include <chrono> // std::chrono::seconds #include <iostream> // std::cout #include <thread> // std::thread, std::this_thread::sleep_for void thread_task(int n) {std::this_thread::sleep_for(std::chrono::seconds(n));std::cout << "hello thread "<< std::this_thread::get_id()<< " paused " << n << " seconds" << std::endl; }/** === FUNCTION =========================================================* Name: main* Description: program entry routine.* ========================================================================*/ int main(int argc, const char *argv[]) {std::thread threads[5];std::cout << "Spawning 5 threads...\n";for (int i = 0; i < 5; i++) {threads[i] = std::thread(thread_task, i + 1);}std::cout << "Done spawning threads! Now wait for them to join\n";for (auto& t: threads) {t.join();}std::cout << "All threads joined.\n";return EXIT_SUCCESS; } /* ---------- end of function main ---------- */

其他成員函數(shù)

  • get_id
獲取線程 ID。
  • joinable
檢查線程是否可被 join。
  • join
Join 線程。
  • detach
Detach 線程
  • swap
Swap 線程 。
  • native_handle
返回 native handle。
  • hardware_concurrency [static]
檢測硬件并發(fā)特性。

轉(zhuǎn)載于:https://www.cnblogs.com/huty/p/8516998.html

總結(jié)

以上是生活随笔為你收集整理的【C/C++开发】C++11 并发指南二(std::thread 详解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日欧一级片 | 国产精品一区二区三区久久 | 一本大道视频 | 亚洲最大成人在线视频 | 黄色小网站入口 | 乱人伦中文字幕 | 天堂中文在线免费观看 | 色爽爽一区二区三区 | 毛片网在线观看 | 欧美日a | 国产三级久久 | 日本一区二区在线观看视频 | 成人私密视频 | www久久99| 精品国产乱码久久久久久图片 | 青青操操| 免费高清成人 | 一级欧美日韩 | 日韩精品在线免费观看视频 | 国产精品一卡二卡 | 国产精品久久久久久久久免费软件 | 精品一性一色一乱农村 | 天天摸天天舔天天操 | 久久综合第一页 | 日本人六九视频 | 美女视频免费在线观看 | 91波多野结衣 | 校园激情亚洲 | 视频在线一区二区三区 | 午夜啪啪网 | 日本一道本 | 在线国产中文字幕 | 插吧插吧网 | 五色天婷婷 | 亚洲永久免费观看 | av毛片一区 | 偷拍一区二区 | 一级久久久久 | 91看片国产| 丰满少妇被猛烈进入一区二区 | 91久久综合精品国产丝袜蜜芽 | 亚洲 国产 日韩 欧美 | 国产按摩一区二区三区 | 亚洲黄色天堂 | 91丨九色丨海角社区 | 999久久久免费精品国产 | av三级网 | 日韩无码精品一区二区 | av网站在线免费 | 国产欧美日本 | 欧美成人aa | 精品国产一区二区三区在线观看 | 狼人综合视频 | 双女主黄文 | 久久精品免费在线 | 香蕉成视频人app下载安装 | 五月天开心网 | 国产96视频 | 国产福利免费视频 | 亚洲激情影院 | 婷婷爱爱 | 精品国产福利 | 天天摸天天操 | 老外黄色一级片 | 激情图片在线观看 | 国产一卡二卡在线 | 国产在线免费 | 亚洲人妻一区二区三区 | 97公开视频 | 天堂av影院| 污黄网站在线观看 | 欧美福利一区二区 | 天天色天天色天天色 | 久久国产成人精品国产成人亚洲 | 久久99精品久久久久婷婷 | 国产欧美精品一区二区 | 美女主播福利视频 | 久久视频一区二区三区 | 亚洲精品福利在线 | 日韩中文av在线 | 美女100%露胸无遮挡 | 日本乱码一区二区 | 久久国产视频网站 | 高清国产mv在线观看 | 国产高清黄色 | 久久久影视| 成人日韩精品 | 黄色一级片毛片 | 丁香六月五月婷婷 | 精品久久久久久久久久久aⅴ | 国产偷国产偷av亚洲清高 | 欧美成人一区二区 | 国产ts人妖调教重口男 | 日本亲子乱子伦xxxx | 97免费超碰 | 国产精品综合一区二区 | 无码视频在线观看 | 国产亚洲天堂 | 变态另类ts人妖一区二区 |