c 轉移執行緒所有權

2021-08-09 11:26:31 字數 549 閱讀 6909

c++中有很多資源占有型別,比如std::ifstream,std::unique_ptr,std::thread 都是可以移動不可拷貝的。

可以通過std::move()轉移乙個執行緒所有權給乙個未關聯執行緒的thread物件,但是不能通過賦乙個新值的方式丟棄乙個執行緒。

void haha(){}

void heihei(){}

int main()

1. 建立物件  t1  關聯haha

2. 建立物件  t2  並接管 t1,此時 t1 未關聯任何執行緒,所以它可以接管乙個執行緒

3. t1 接管heihei

4. 建立物件  t3  , 不關聯執行緒

5. t2  轉移控制權給  t3  ,此時 t2 未關聯任何執行緒,可接管乙個執行緒

6. t1 已經關聯了執行緒heihei,此時接管 t3 不被允許,將導致程式崩潰

可以通過std::move()轉移乙個執行緒所有權給乙個未關聯執行緒的thread物件,但是不能通過賦乙個新值的方式丟棄乙個執行緒。

C 併發 轉移執行緒的所有權

void function void function1 std thread t1 function 啟動乙個新執行緒t1與function關聯 std thread t2 std move t1 將t1限行的轉移給t2 t1 std thread function1 啟動乙個臨時的物件與func...

賬號所有權

關於區塊鏈 三 賬戶的所有權 傳統銀行系統 銀行卡 密碼 開戶時會記錄個人的資訊用於該賬號的所有權 位元幣系統 密碼 私鑰 私鑰 shshhfihduhdihfihsihfihdihw8ihidhhfieuiu2i374 hash hash fun shshhfihduhdihfihsihfihdi...

c 11併發程式設計歷程(5)轉移執行緒所有權

include include class scoped thread intstart std thread t scoped thread scoped thread scoped thread const delete scoped thread operator scoped thread ...