天天看點

線程取消點相關

1)取消點的位置;耗時操作、大的業務邏輯;

2)取消後的資源釋放。

pthread_cleanup_push

執行取消操作存在一定的危險。大多數危險都與完全恢複不變量和釋放共享資源有關。取消線程時一定要格外小心,否則可能會使互斥保留為鎖定狀态,進而導緻死鎖狀态。或者,已取消的線程可能保留已配置設定的記憶體區域,但是系統無法識别這一部分記憶體,進而無法釋放它。

一般地,線程從啟動函數傳回來終止自己;

當調用pthread_exit()退出線程或者調用pthread_cancel()取消線程時,線程在調用每個清理過程後也進入終止狀态;

清理過程又線程通過pthread_cleanup_push()注冊,且尚未通過pthread_cleanup_poo()删除;

------------------越是喧嚣的世界,越需要甯靜的思考------------------

合抱之木,生于毫末;九層之台,起于壘土;千裡之行,始于足下。

積土成山,風雨興焉;積水成淵,蛟龍生焉;積善成德,而神明自得,聖心備焉。故不積跬步,無以至千裡;不積小流,無以成江海。骐骥一躍,不能十步;驽馬十駕,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓無爪牙之利,筋骨之強,上食埃土,下飲黃泉,用心一也。蟹六跪而二螯,非蛇鳝之穴無可寄托者,用心躁也。

繼續閱讀