Rust編程進階:043、多線程介紹

1、進程是資源分配的最小單位,線程是CPU調度的最小單位。
2、在使用多線程時,經常會遇到的一些問題:
(1)競爭狀態:多個線程以不一致的順序訪問數據或資源;
(2)死鎖:兩個線程相互等待對方停止使用其所擁有的資源,造成兩者都永久等待;A:1->2->3 B:2->1->3 t1:A:1,B:2 接下來:A:2,B:1 造成死鎖
(3)只會發生在特定情況下且難以穩定重現和修復的bug
3、編程語言提供的線程叫做綠色線程,如go語言,在底層實現了M:N的模型,即M個綠色線程對應N個OS線程。但是,Rust標準庫只提供1:1的線程模型的實現,即一個Rust線程對應一個OS線程。運行時代表二進制文件中包含的由語言本身提供的代碼,這些代碼根據語言的不同可大可小,不過非彙編語言都會有一定數量的運行時代碼。通常,大家說一個語言“沒有運行時”,是指這個語言的“運行時”很小。Rust、C都是幾乎沒有運行時的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章