什麼是執行緒安全問題 及怎麼解決執行緒安全問題

2021-10-23 20:13:32 字數 995 閱讀 4057

1.什麼是執行緒安全問題

就是 多執行緒環境中 , 且存在資料共享 , 乙個執行緒訪問的共享 資料被其他執行緒修改了, 那麼就發生了執行緒安全問題 , 整個訪問過程中 , 無一共享的資料被其他執行緒修改了 就是執行緒安全的

程式中如果使用成員變數, 且對成員變數進行資料修改 , 就存在資料共享問題, 也就是執行緒安全問題

2.為什麼會有執行緒安全問題?

當多個執行緒同時共享乙個全域性變數,或者靜態變數, 進行寫的操作時, 可能會發生資料的衝突問題 ,也就是執行緒安全問題, 但是做讀的操作不會引發執行緒安全問題

執行緒安全

指多個執行緒在執行同一段**的時候採用加鎖機制, 使每次的執行結果和單執行緒執行結果一樣的, 不存在執行程式時出現意外結果

執行緒不安全

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

3.如何解決執行緒安全問題

使用同步機制, 使得在同一時間只能有乙個執行緒修改共享資料

消除共享資料, 即多個執行緒資料不共享或者共享的資料不被做修改 如果使用成員變數, 對成員變數不進行修改

(同步**塊 同步方法 notiy鎖)

4.什麼是執行緒同步

當有乙個執行緒在對記憶體進行操作時.其他執行緒都不可以對這個記憶體位址進行操作,其他執行緒才能對該記憶體位址進行操作, 而其他執行緒又處於等待狀態。

理解共享 只有共享資源的讀寫才需要同步, 如果不是共享資源 那麼就不需要同步了

執行緒同步其實 實現的是執行緒排隊

防止執行緒同步訪問共享資源造成衝突

變數需要同步 , 常量不需要同步(常量存在方法區)

多個執行緒訪問共享資源的**有可能是同乙份** 也有可能是不同乙份**, 無論是否執行同乙份** 只要這些執行緒的**訪問同乙份可變的共享資源, 這些執行緒之間就需要同步。

解決執行緒安全問題

一 1 同步 塊 解決runnable的執行緒安全問題 格式 synchronized 同步監視器 被同步的 操作共享資料的 共享資料 多個執行緒共同操作的變數 同步監視器 俗稱鎖,任何乙個類的物件都可以充當鎖。同步監視器中可以用this充當鎖 2 解決繼承thread類的執行緒安全問題 synch...

解決執行緒的安全問題

synchronized的底層是使用作業系統的mutex lock實現的。1.作為方法的修飾符 方法的定義前面synchronized intadd int a,int b synchronized static intadd int a,int b 2.作為同步 塊synchronized 物件的...

前端安全問題及解決

xss安全漏洞 xss漏洞修復 function filterxss str,regexp var regex gi 去除包含 內容的,防止xss漏洞 var filtervalue str.replace g,去除 開頭型別的xss漏洞 filtervalue str.replace csrf安全...