如何實現乙個安全的thread stop的api

時間 2021-05-11 22:14:53

1樓:DamonChen

你把執行緒問題看成分布式資料一致性問題來看,只是時間超時是0,資料可以記憶體共享。然後再看陳碩說的,被外部殺了,相當於執行緒的時間超時不是0了,真的超時了,就知道只有乙份資料是很難保證資料的準確了。

2樓:

一般認為執行緒是不應該可以被cancel,但stop還是可以有的,stop之後還可以resume嘛。而且不僅可以stop,在一些關鍵場合還應該允許一些執行故障,比如某個cpu掛掉之類的問題。

主要存在的問題,其他人都有提及。解決的辦法就是使用不會鎖死的演算法(lock-free或者wait-free)實現,以及構建於這些演算法之上的系統。

3樓:陳碩

Impossible. 執行緒只能自殺,不能被殺,否則程式狀態不可控。例如執行緒正持有鎖,資料更新了一半,被殺,鎖誰來釋放?就算別的執行緒可以釋放鎖,那資料狀態不一致怎麼修復?

就拿最簡單的 LinkedList 來說,如果某個執行緒在呼叫 add() 的時候被殺,add() 剛好執行了一半,鍊錶結構被破壞。那其他執行緒怎麼判斷這個 LinkedList 的內部狀態是否一致?就算有辦法做到,也是 O(N) 級別的耗時操作,那其他執行緒選擇什麼時機去執行這一耗時的判斷?

如何建立乙個安全的企業內網安全環境

素顏襯紅妝 絕大多數企業為了防止智財權 商業機密資料洩露,主動地將自身網路進行安全性隔離。大部分都在內部實施了內網路分離,網際網路與內網隔離,生產網與辦公網隔離,辦公網與研發網隔離,以確保企業資訊保安。像企業級的,我推薦ftrans軟體,Ftrans可以支援 計算機資訊系統安全保護等級 一級至五級的...

如何實現乙個較富裕的社會?

煙斗老夏 要想實現乙個比較富裕的社會,首先就要提公升勞動生產率,按你的要求,具體來說就是要有人才。其次是要有完善的分配機制,按你的要求,具體來說就是由哪些人來分配以及如何分配。 雲以出岫 第一,提高生產力。這個是前提,沒有這個前提,隨著人口增加,社會人均資源必然越來越少。接著就會陷入歷史上那種戰亂 ...

如何簡單的實現型別安全的 printf?

Belleve 給你放乙個久負盛名的 gist 好了 https 如果你想對實現執行時的型別檢查,就實現掉 DecEq Format,乙個例子是這樣的 implementation DecEq Format where 太長懶得寫 使用 case decEq formatString userInp...