Race Condition 竞争危害
Race Condition 竞争危害
Categories:
常在多执行序(Multi-Thread) 中遇到,当需要将存取的资源锁定住,避免程式执行过程中资源被异动,导致最后结果与预期不符,但同时有多个执行序需要锁定相同资源时,彼此会互相等对方释放资源才能够继续执行,变成一个死结 Dead lock
的状况
如何解决 Race Condition
- 程式在
锁定 lock
资料时,使用相同的顺序
并同时
锁定所有需要锁定的资料,确保程式执行前拥有所有需要处理的资源,不会处理到一半发现其他资源被锁定 lock
住无法执行 - 当有其他逻辑需要
锁定 lock
相同资料时,必须要锁定相同顺序
的资源,所以当无法顺利锁定 lock
时,就不会有处理资料到一半的状况