天天看點

線程池出現段錯誤

經過排查發現相同的連接配接套接字會被處理多次,

線程池出現段錯誤

在發送完圖檔後會删除相應圖檔,是以最終導緻段錯誤。不使用線程池發現請求隊列的加鎖沒有問題,是以問題定位到線程池部分。

最終發現是線程池中加速力度不夠,在往線程池中添加任務時,一部分代碼沒有在鎖内,導緻出錯。

另一個錯誤是傳遞給線程池中工作線程的參數是局部變量的指針,當傳遞給工作線程時他沒有能夠立即執行,有其他線程搶占,是以該記憶體位址中的值已經變化了,擷取的是變化之後的變量值,最終出現段錯誤。

修改方法:建立一個全局資料,每次傳給工作線程時都選擇不同的數組值,這樣就避免了在同一位址取值。

繼續閱讀