天天看點

關于多線程調試的一個坑

今天需要寫一個多線程處理的程式,具體邏輯不說了,基本的調用邏輯是主線程中啟動子線程,子線程完成一個比較耗時的資料處理操作。可是在本地單元測試時,代碼已進入子線程,剛剛執行幾行代碼就閃退了,連一個錯誤異常都沒有。奇怪、反複調試,也沒有找到原因。各種懷疑,各種代碼驗證,折騰了好一陣。憤懑中發現一個規律,如果單步調試執行的快一些,代碼就能多執行幾行,md,突然間想到了在以前好像也碰到過這個問題,就是測試環境中,主線程停止後服務就停止了,是以就閃退了,根本就不是代碼的問題。

也許是很長時間沒寫線程相關的程式了,這麼一個曾經遇到的坑給忘了,浪費了半天時間。