3 執行緒帶來的風險

2021-08-17 17:07:04 字數 539 閱讀 6436

1、

死鎖

產生死鎖的原因

關於死鎖出現的必要條件

這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,這也為我們實際應用中定位死鎖問題,提供了路由。

不加鎖,兩線程訪問,變數訪問示例

當兩個執行緒讀寫相同變數時,執行緒a讀取變數然後給予變數賦予乙個新的值,但是寫操作需要兩個儲存器週期。當執行緒b在這兩個儲存器週期中間讀取這個相同變數時,它就會得到不一致的值。這就是為什麼要對多執行緒資源訪問進行加鎖,加鎖以後的訪問順序就變成了順序訪問,從而可以避免資源的不一致訪問。

2、飢餓

如果乙個執行緒因為 cpu 時間全部被其他執行緒搶走而得不到 cpu 執行時間,這種狀態被稱之為「飢餓」;

飢餓的原因

3、活鎖

是指執行緒1可以使用資源,但它很禮貌,讓其他執行緒先使用資源,執行緒2也可以使用資源,但它很紳士,也讓其他執行緒先使用資源。這樣你讓我,我讓你,最後兩個執行緒都無法使用資源。

多執行緒帶來的風險 執行緒安全

1 多執行緒的三大特性 案例描述 電影院有三個視窗,售兩種票共 100 張,輸 票情況 class sellticket implements runnuble catch interruptexception e system.out.println thread.currrentthread g...

SOA正在帶來新的安全風險?

soa正在帶來新的安全風險?2006.06.06 來自 電腦商報 隨著網路效能的不斷提公升,使軟體 商通過網際網路來發布相關應用程式變得更加容易和便利,今後這些服務的數目和種類將會持續增多。但是,賽門鐵克公司全球安全諮詢部門近來提醒客戶,第三方服務會帶來安全上的風險。賽門鐵克諮詢師samir kap...

專案風險管理 如何降低專案溝通帶來的風險

專案風險管理,涉及到專案管理的方方面面。專案風險大小受到不可控因素的影響。而專案溝通的不可控性非常大,所以容易帶來一些不可預知的風險。在專案溝通中,一些小小的溝通問題,很有可能引發難以預估的專案風險。為了盡可能降低專案溝通帶來的風險,需要盡可能規範化專案溝通方式和流程。弄明白一些常見的溝通問題,做好...