std thread 的一點感悟

2021-08-29 01:20:44 字數 628 閱讀 4074

使用 std::thread的時候遇到乙個崩潰問題,查了2天,值得一吹。

基礎的知識可以看這裡c++11執行緒指南(1)–建立執行緒,這個哥們寫的很好

1,建立了乙個執行緒,當時會在程式退出的時候崩潰(也就是呼叫join的時候),百思不得其解,後來才發現我的這個執行緒建立在了乙個單例模式上了。

也就是

class a}};

static cgarbo garbo; // 定義乙個靜態成員,在程式結束時,系統會呼叫它的析構函式

};

也就是說這個單例模式,使用的是 靜態區中的資料清理的時候,才會清理執行緒。結果就是崩潰。

原因的猜測就是這個時候主線程已經結束了,現在進入了作業系統資源**階段。

2,std::thread my_thread(fun);

這個時候fun函式已經開始執行了。

後面加上 join,就是說此時的執行緒(一般是主線程) 要等該執行緒執行完了才能往下執行。

後面加上 detach後,就不歸你管了,什麼時候執行緒退出要看你函式怎麼寫的了。

建議用 join

總結,還是在靜態區這個地方掉了坑里。熟悉了std::thread的使用方式,說實在的std::thread,簡單用用很好, 複雜了話,你會想死,比qt要難用。

雜談,一點感悟

今晚與老領導交流,談及目前開發部門的相關事情,感觸良多。邁入管理工作之門也有一段時間了,都說管理無小事,但這段時間以來,一直都是被各種不同身份的工作所纏繞著,感覺縱有三頭六臂也無法完成。管理工作 專案工作 技術工作 其實對我而言,管理工作方是我的主要工作,但管理工作要出成績也並不容易。難就難在目前的...

一點小感悟

今天去了華為的機試,說實話,題目不是很難,但是自己並沒有發揮的很好,只寫出來一題半,第一題非常簡單 兩個兩位數a,b,輸出乙個四位數,將a的十位和個位放到c的十位和百位上,b的十位和個位放到c的個位和千位上,直接轉化為字串拼接一下就行。第二題有點難度 給出1,3,9,27,81,這幾個數,輸入1 1...

又是一點感悟

今天去參加了乙個技術人員的聚會,席間基本上以80後的各種前輩居多,跟他們交流也產生了一些感悟,再加上前段時間的一些經歷和感悟,特此記錄下來。乙個技術人員的核心競爭力是什麼,如果你工作幾年之後再去看乙個演算法,跟乙個校招新人去看乙個演算法有什麼區別嗎,你跟別人比的優勢又在 除了純粹的技術之外,你的其他...