Race Condition 競爭危害
Race Condition 競爭危害
Categories:
常在多執行序(Multi-Thread) 中遇到,當需要將存取的資源鎖定住,避免程式執行過程中資源被異動,導致最後結果與預期不符,但同時有多個執行序需要鎖定相同資源時,彼此會互相等對方釋放資源才能夠繼續執行,變成一個死結 Dead lock
的狀況
如何解決 Race Condition
- 程式在
鎖定 lock
資料時,使用相同的順序
並同時
鎖定所有需要鎖定的資料,確保程式執行前擁有所有需要處理的資源,不會處理到一半發現其他資源被鎖定 lock
住無法執行 - 當有其他邏輯需要
鎖定 lock
相同資料時,必須要鎖定相同順序
的資源,所以當無法順利鎖定 lock
時,就不會有處理資料到一半的狀況