什麼是執行緒安全?執行緒安全是怎麼完成的(原理)?
執行緒安全就是說多執行緒訪問同一**,不會產生不確定的結果。編寫執行緒安全的**是低依靠執行緒同步。
首先要明白執行緒的工作原理,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...