天天看點

跨線程可能引發的崩潰問題

跨線程引發的崩潰:

1.正常跨線程調用

a.跨線程造成死鎖

b.跨線程釋放記憶體

c.多線程并發通路(例如:進入一個界面時,該界面會同時發起三個異步請求操作。每個操作在發起資料請求時,都可能會調某一方法進行存取某一屬性值)

d.線程本身有問題,調用此線程也會挂掉。(執行本段邏輯均會挂掉)

e.線程調用後未sleep,一直占用cpu,導緻程式直接被殺死

f. 對公有變量的同時讀或寫。(當多個線程需要對公有變量進行寫操作時,後一個線程往往會修改掉前一個線程存放的資料,進而使前一個線程的參數被修改;另外,當公用變量的讀寫操作是非原子性時,在不同的機器上,中斷時間的不确定性,會導緻資料在一個線程内的操作産生錯誤,進而産生莫名其妙的錯誤,而這種錯誤是程式員無法預知的)、

2.異常跨線程調用

同步鎖出現問題(在不應該解鎖的地方提前解鎖,導緻其他線程通路到此處的内容,引發了異常)

繼續閱讀