執行緒安全與執行緒不安全的區別,什麼是執行緒安全什麼是執行緒不安全

2021-03-03 21:30:09 字數 1740 閱讀 7767

1樓:匿名使用者

執行緒bai安全就是多執行緒訪問時,採du用了加鎖機zhi制,當乙個執行緒訪dao

問該類的某回個資料時,進行保護,其他執行緒答不能進行訪問直到該執行緒讀取完,其他執行緒才可使用。不會出現資料不一致或者資料汙染。

執行緒不安全就是不提供資料訪問保護,有可能出現多個執行緒先後更改資料造成所得到的資料是髒資料

2樓:匿名使用者

在多個執行緒同時訪問同乙個物件時會發生資料錯誤 不完整等情況時 那就是執行緒不安全,不會發生上續錯誤時是執行緒安全的,一般採用鎖機制,

什麼是執行緒安全 什麼是執行緒不安全

3樓:育知同創教育

首先要明白執行緒的工作原理,jvm有乙個main memory,而每個線

程有自己的working memory,乙個執行緒對乙個variable進行操作時,都要在自己的working memory裡面建立乙個copy,操作完之後再寫入main memory。多個執行緒同時操作同乙個variable,就可能會出現不可預知的結果。根據上面的解釋,很容易想出相應的scenario。

而用synchronized的關鍵是建立乙個monitor,這個monitor可以是要修改的variable也可以其他你認為合適的object比如method,然後通過給這個monitor加鎖來實現執行緒安全,每個執行緒在獲得這個鎖之後,要執行完 load到workingmemory -> use&assign -> store到mainmemory 的過程,才會釋放它得到的鎖。這樣就實現了所謂的執行緒安全。

什麼是執行緒安全?執行緒安全是怎麼完成的(原理)?

執行緒安全就是說多執行緒訪問同一**,不會產生不確定的結果。編寫執行緒安全的**是低依靠執行緒同步。

在介面方式中,執行緒有乙個共享的資料成員,即: private int count =10;

而在繼承方式中,執行緒之間沒有共享的成員,而是各執行緒各自有乙個私有成員,即: private int count =10;

樓主的**剛好是乙個好例子,說明了何時需要考慮執行緒同步,並在一定程式上說明了怎樣才能編寫出執行緒安全的**。

在多執行緒環境中,當各執行緒不共享資料的時候,那麼一定是執行緒安全的。問題是這種情況並不多見,在多數情況下需要共享資料,這時就需要進行適當的同步控制了。

執行緒安全一般都涉及到synchronized 就是一段**同時只能有乙個執行緒來操作 不然中間過程可能會產生不可預製的結果

如果你的**所在的程序中有多個執行緒在同時執行,而這些執行緒可能會同時執行這段**。如果每次執行結果和單執行緒執行的結果是一樣的,而且其他的變數的值也和預期的是一樣的,就是執行緒安全的。

舉例 比如乙個 arraylist 類,在新增乙個元素的時候,它可能會有兩步來完成:1. 在 items[size] 的位置存放此元素;2. 增大 size 的值。

在單執行緒執行的情況下,如果 size = 0,新增乙個元素後,此元素在位置 0,而且 size=1; 而如果是在多執行緒情況下,比如有兩個執行緒,執行緒 a 先將元素存放在位置 0。但是此時 cpu 排程執行緒a暫停,執行緒 b 得到執行的機會。執行緒b也向此 arraylist 新增元素,因為此時 size 仍然等於 0 (注意哦,我們假設的是新增乙個元素是要兩個步驟哦,而執行緒a僅僅完成了步驟1),所以執行緒b也將元素存放在位置0。

然後執行緒a和執行緒b都繼續執行,都增加 size 的值。 那好,現在我們來看看 arraylist 的情況,元素實際上只有乙個,存放在位置 0,而 size 卻等於 2。這就是「執行緒不安全」了。

如何讓開發版chrome訪問不安全的https鏈結

你看chrome的設定,高階設定裡面的隱私設定的 保護您和您的裝置不受危險 的侵害 前面是否選中了,給去掉試試 如何讓開發版chrome訪問不安全的https鏈結?如何讓開發版chrome訪問不安全的https鏈結 如何讓開發版chrome訪問不安全的https鏈結 如何解決chrome瀏覽器不能訪...

怎樣投資理財才能降低不安全的因素

下面我推薦一些理財的方式,研究了一會兒,覺得4321理財法則比較適合大多數人,現在我來說說 4321理財法則,即資產配置方面可以分配成40 30 20 10 如果某種資產 後,減少這類資產總額,將其平均分配在餘下的資產中,使之恆定保持乙個4321的比例。以下是具體分配方法 這是一種科學支配家庭月收入...

別人知道家裡的Wi Fi密碼有什麼不安全的嗎

只要不是惡意的攻擊,沒什麼問題的,最多就是蹭蹭網而已。再說了,也沒有黑客無聊到去攻擊普通家庭的無線網玩的,沒意思的。電腦硬體問題。根據你的描述,可以連線wifi,別人知道家裡的wi fi密碼確實不安全。原因是 通過連線路由器,會有可能攻克路由器,得到控制權。從而獲得家庭網路的全部控制權,裡面的銀行資...