0
在我的應用程序中,線程可以用boost :: thread :: interrupt中斷。我想重用中斷的線程,我可以只捕獲boost :: interrupted_exception,或者它在意識形態上是不正確的?捕獲boost :: interrupted_exception是否正確?
在我的應用程序中,線程可以用boost :: thread :: interrupt中斷。我想重用中斷的線程,我可以只捕獲boost :: interrupted_exception,或者它在意識形態上是不正確的?捕獲boost :: interrupted_exception是否正確?
我想重用中斷線程
它looks like你可以(強調):
拋出boost :: thread_interrupted僅僅是一個正常的異常,因此它可以 抓,就像任何其他例外一樣。這就是爲什麼拋出異常時清除「中斷」 標誌的原因 - 如果線程捕獲並且 處理中斷,那麼再次中斷 是完全可以接受的。 這可以用於,例如,當一個工作線程處理一系列獨立任務 - 如果當前任務是 中斷,工作人員可以處理中斷並丟棄 任務,並轉移到下一個任務 ,然後可以中斷 。它還允許線程捕獲異常,並通過其他方式自行終止,例如返回錯誤代碼,或者將異常轉換爲通過模塊邊界。
中斷機制純粹是爲了幫助你。實際上對你來說意味着什麼對你來說是決定性的。 – GManNickG