不定積分的計(jì)算方法總結(jié) C 的智能指針不就基本解決了野指針問題了嗎?為什么還要吹捧rust的內(nèi)存安全?
C 的智能指針不就基本解決了野指針問題了嗎?為什么還要吹捧rust的內(nèi)存安全?Rust從編譯器階段就杜絕了內(nèi)存安全問題,包括單線程與多線程情況,這得益于rust編譯器級(jí)復(fù)雜的所有權(quán)機(jī)制,使得任何人
C 的智能指針不就基本解決了野指針問題了嗎?為什么還要吹捧rust的內(nèi)存安全?
Rust從編譯器階段就杜絕了內(nèi)存安全問題,包括單線程與多線程情況,這得益于rust編譯器級(jí)復(fù)雜的所有權(quán)機(jī)制,使得任何人都無法寫出不“安全”的代碼,這是法制。
使用C/C ,世界上任何程序員都沒有辦法保證寫的代碼絕對(duì)的內(nèi)存安全,雖然C 是屠龍刀,但是問題也很顯著。也就是人治是沒有辦法保證代碼的內(nèi)存安全,線程安全。
C 智能指針,還是存在使用過程中容易產(chǎn)生問題的地方,比如最新的shared_ptr在多線程環(huán)境下,有個(gè)程序員忘記執(zhí)行鎖定操作怎么辦?這種情況在rust下就不會(huì)發(fā)生,使用Arc機(jī)制,你不鎖定都沒有辦法訪問到數(shù)據(jù)。就算單線程環(huán)境,你能保證所有程序員不會(huì)把智能指針實(shí)例的引用再傳遞出去?如此這般不勝枚舉。C 根本沒辦法在編譯階段發(fā)現(xiàn)這些問題。
Rust執(zhí)行的是法制,而非人治。數(shù)據(jù)訪問有沖突,根本不能編譯!