我对网络开发很陌生。从我读到的关于竞争条件的内容中,我认为使用 node 或 JS 是不可能的,因为它是单线程的,但我认为那是..我猜错了。通过这个小例子,有人可以解释它是如何工作的。
如果有一个银行账户,里面有 1000 美元,并且两个人在同一秒同时访问服务器时从账户中扣款。第一个人收费 600 美元,第二个人收费 200 美元。
第一次收费为 1000 美元至 600 美元,余额为 400 美元。但是由于第二次收费是在同一时间发生的,所以它会产生 1000 美元到 200 美元的费用,而余额则为 800 美元。显然,余额现在应该是 200 美元。
据我了解,这会导致比赛条件,不是吗?你将如何设置它来避免这个问题?我不需要确切的代码,也许有人向我解释这个,或者伪代码。
提前致谢。
编辑:我将编辑它以了解最初如何设置代码导致竞争条件。
就像下面的帖子说的。将设置代码,以便当账户被击中时,它会减去金额并给出新的余额。显然这会导致竞争条件。