c 標準庫之thread

2022-07-13 06:12:13 字數 1026 閱讀 9324

class thread是對執行緒的抽象。以下分別介紹thread是如何表示執行緒的大部分特徵的。

執行緒的執行體由乙個可執行(callable)物件來表示。這個執行體可以在thread建立的時候指定。thread建立完成後執行緒即啟動執行。

template

explicit thread(fn &&fn,args&&... args);

如果在建立thread的時候不指定,則該thread就沒有執行體,也就不會有執行緒被啟動。

thread()noexcept;

thread也可以移動構造,從另乙個已存在的thread獲得執行體,同時還接收執行緒狀態。相當於實際的執行緒換了個宿主。

thread(thread &&)noexcept;

thread不能賦值和拷貝。

thread(const thread &)=delete;  

thread在建立的時候不具備分離屬性。成員函式detach可設定thread為分離的。

join用於阻塞當前執行緒等待thread執行完執行體。一般用於多執行緒之間進行同步。對於不具備分離屬性的執行緒必須要join,否則會導致terminal。

成員函式joinable用於檢測thread是否需要join。joinable為false的情況有3種:1.thread呼叫過detach; 2.thread已經join過; 3.thread為空。

成員函式get_id用於返回執行緒的控制代碼。get_id可能返回joinable為true的thread的id,joinable為false則返回 id().

以上就是標準庫thread的所有操作,所以thread不具備指定優先順序的功能。

thread的所有輔助函式位於std::this_thread命名空間中。

thread::id get_id()用於獲取當前執行緒id.

void yield()noexcept 用於退出本次執行,等待下次排程.

sleep_for(duration) 用於使當前執行緒阻塞乙個時間段

sleep_until(time_point) 用於使當前執行緒阻塞直到某個時間點

C 11標準庫thread簡介

1.建立執行緒物件 1 不代表任何執行執行緒的物件 thread noexcept 2 fn為可呼叫物件 函式 仿函式 過載 運算子的類 初始化為 class lame表示式 args為與之同步的一包引數列表 備註 類的成員函式作為可呼叫物件時,第一引數必須是該成員函式的位址,第二引數應為該類。仿函...

C 標準庫之

iomanip在c 程式裡面經常見到下面的標頭檔案 include io代表輸入輸出,manip是manipulator 操縱器 的縮寫 在c 上只能通過輸入縮寫才有效。dec 設定整數為十進位制 hex 設定整數為十六進製制 oct 設定整數為八進位制 setbase n 設定整數為n進製 n 8...

C 標準庫之cctype

c 語言下 標頭檔案 include 說明 字元處理庫 功能一 字元測試 1 函式原型均為int is x int 2 引數為int,任何實參均被提公升成整型 3 只能正確處理處於 0,127 之間的值 功能二 字元對映 1 函式原型為int to x int 2 對引數進行檢測,若符合範圍則轉換,...