Merge pull request #38 from qinhanlei/patch-8

Update ch9-01.md
This commit is contained in:
Xargin 2017-12-06 10:45:11 +08:00 committed by GitHub
commit 97c96badd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -40,11 +40,11 @@ go bank.Deposit(100) // B
Alice存了$200然后检查她的余额同时Bob存了$100。因为A1和A2是和B并发执行的我们没法预测他们发生的先后顺序。直观地来看的话我们会认为其执行顺序只有三种可能性“Alice先”“Bob先”以及“Alice/Bob/Alice”交错执行。下面的表格会展示经过每一步骤后balance变量的值。引号里的字符串表示余额单。 Alice存了$200然后检查她的余额同时Bob存了$100。因为A1和A2是和B并发执行的我们没法预测他们发生的先后顺序。直观地来看的话我们会认为其执行顺序只有三种可能性“Alice先”“Bob先”以及“Alice/Bob/Alice”交错执行。下面的表格会展示经过每一步骤后balance变量的值。引号里的字符串表示余额单。
``` ```
Alice first Bob first Alice/Bob/Alice Alice first Bob first Alice/Bob/Alice
0 0 0 0 0 0
A1 200 B 100 A1 200 A1 200 B 100 A1 200
A2 "=200" A1 300 B 300 A2 "= 200" A1 300 B 300
B 300 A2 "=300" A2 "=300" B 300 A2 "= 300" A2 "= 300"
``` ```
所有情况下最终的余额都是$300。唯一的变数是Alice的余额单是否包含了Bob交易不过无论怎么着客户都不会在意。 所有情况下最终的余额都是$300。唯一的变数是Alice的余额单是否包含了Bob交易不过无论怎么着客户都不会在意。