解决死锁问题
第三方支付已经彻底融入了人们的生产和生活中了,它一定会出现下面这样的场景。
从上面的图中可以看到,当两个及两个以上账户之间同时转账时,就会出现余额
被锁住而互相等待的情况,这和多线程中的死锁
是一个道理。
死锁
的出现,一定是因为满足了下面的四个条件之一或全部。
-
互斥
:某个资源R只能被一个线程占用。 -
占有且等待
:线程A已经获取了资源R,并且想继续获取资源S,但它又不愿意释放R。 -
不可抢占
:其他的线程不能强行去抢占线程A已经获得的资源R,只能等待。 -
循环等待
:线程A等待线程B释放资源S,而线程B也等着线程A释放资源R。
原创大约 9 分钟