線程的取消選項

線程的取消選項包含兩方面的內(nèi)容:

  1. 取消屬性
  2. 取消類型

取消屬性

取消屬性包括PTHREAD_CANCEL_ENABLE和PTHREAD_CANCEL_DISABLE

當(dāng)取消屬性是PTHREAD_CANCEL_DISABLE時,pthread_cancle調(diào)用并不會殺死線程,相反,取消請求對這個線程來說是未決的。當(dāng)線程的取消屬性為PTREAD_CANCEL_ENABLE時,線程將在下一個取消點對所有的未決的取消請求進(jìn)行處理。

取消點

所謂的取消點是線程檢查是否被取消并按照請求進(jìn)行處理的一個位置,取消點是一系列的函數(shù)。

如果線程在很長一段時間內(nèi)都沒有調(diào)用取消點的函數(shù),那么可以調(diào)用pthread_testcancel函數(shù)在程序中自己添加取消點。

取消類型

取消類型分為異步取消和延遲取消,默認(rèn)為延遲取消。
延遲取消:需要到取消點時才會執(zhí)行相應(yīng)的取消動作
異步取消:線程可以在任意時間取消,不是非得等到取消點才能取消

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容