Race Condition 竞争危害

Race Condition 竞争危害

常在多执行序(Multi-Thread) 中遇到,当需要将存取的资源锁定住,避免程式执行过程中资源被异动,导致最后结果与预期不符,但同时有多个执行序需要锁定相同资源时,彼此会互相等对方释放资源才能够继续执行,变成一个死结 Dead lock 的状况

如何解决 Race Condition

  • 程式在 锁定 lock 资料时,使用相同的顺序同时 锁定所有需要锁定的资料,确保程式执行前拥有所有需要处理的资源,不会处理到一半发现其他资源被 锁定 lock 住无法执行
  • 当有其他逻辑需要 锁定 lock 相同资料时,必须要锁定 相同顺序 的资源,所以当无法顺利 锁定 lock 时,就不会有处理资料到一半的状况

参考资料