01 程式設計習慣 md

2021-10-06 05:06:18 字數 553 閱讀 9093

問題:在建立執行緒的時候呼叫pthread_create傳入的只能指標,如果傳入的是棧的指標,該函式退出後棧的空間就會被釋放,新執行緒傳入的值就會是錯的。

解決方法1:可以使用static或malloc或全域性變數來處理,如果是malloc還需要在新執行緒中釋放,全域性變數不是個好事,static最佳

int

fuc(

struct a *psrc)

return0;

}

解決方法2:又出現乙個問題,如果平台下發第一條報文,呼叫了fuc函式,非同步執行,建立了新的執行緒(即建立了newpthread),此時平台又下發了一次報文,會再次呼叫fuc函式,這時候psrctemp就變成了可重入,因為newpthread執行緒正在呼叫這個引數,那可以怎麼辦呢?難道要加鎖保護這個可重入的變數嗎?那更2了,和同事討論後,可以不用static,用堆,因為每次進入這個函式的時候分配的位址一定是不同的,所以就不會出現可重入,但是需要在新的執行緒中free掉,加個注釋吧。相比兩個執行緒加解鎖,兩個執行緒申請釋放確實能好點。

生產者消費者不用加鎖,有時間再寫,我今晚要寫完這塊**

程式設計好習慣

我們在編碼的時候總是希望能寫出風格良好,清晰 健壯的程式,把 當成一件藝術品來看待 來雕琢,讓 coding成為一種藝術。看了很多大牛關於程式設計風格與修養方面的文章,很受啟發,結合自己體會,簡錄幾條,提醒自己時刻注意。1.引數檢查 對於有引數的函式,首先要對引數的合法性進行檢查。可以利用asser...

程式設計好習慣

1.dry 不要重複你自己 don t repeat yourself dry是一條最容易理解但又是相對比較難以應用的原則。它是指當你在兩處或者更多的地方發現相似 時,我們應當把它們抽象成乙個新的函式,在之前重複的地方呼叫新的函式並帶上適當的引數。dry也許是最普遍的一條程式設計原則,我從未發現乙個...

程式設計編碼習慣

1.命名要規範。最好為英文。方法命名 首字母大寫。比如testname。變數或者引數命名,首字母小寫,如 firstname 如下圖。類的命名 方法 屬性的命名首字母大寫。變數 字段 引數 沒有成員的 首字母小寫。屬性不是字段,是類的成員 方法。類成員包括 字段 屬性 方法。屬性是一種特殊的方法。2...