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

2021-08-27 17:01:06 字數 513 閱讀 4144

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

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

首先要明白執行緒的工作原理,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   的過程,才會釋放它得到的鎖。這樣就實現了所謂的執行緒安全。

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

首先要明白執行緒的工作原理,jvm有乙個main memory,而每個執行緒有自己的working memory,乙個執行緒對乙個variable進行操作時,都要在自己的working memory裡面建立乙個copy,操作完之後再寫入main memory。多個執行緒同時操作同乙個variable...

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

首先要明白執行緒的工作原理,jvm有乙個main memory,而每個執行緒有自己的working memory,乙個執行緒對乙個variable進行操作時,都要在自己的working memory裡面建立乙個copy,操作完之後再寫入main memory。多個執行緒同時操作同乙個variable...

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

首先要明白執行緒的工作原理,jvm有乙個main memory,而每個執行緒有自己的working memory,乙個執行緒對乙個variable進行操作時,都要在自己的working memory裡面建立乙個copy,操作完之後再寫入main memory。多個執行緒同時操作同乙個variable...