Skip to content

Commit 5e92253

Browse files
committed
Add implementation of exercise 3-44
1 parent ae12a16 commit 5e92253

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

README.org

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
习题完成情况:
2626
- 章节一: 43/46
2727
- 章节二: 88/97
28-
- 章节三: 43/82
28+
- 章节三: 44/82
2929
- 章节四: TODO
3030
- 章节五: TODO
3131
* 运行

chapter3/exercise3-44.org

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#+LATEX_CLASS: ramsay-org-article
2+
#+LATEX_CLASS_OPTIONS: [oneside,A4paper,12pt]
3+
#+AUTHOR: Ramsay Leung
4+
5+
#+DATE: 2025-07-23 Wed 00:04
6+
7+
Louis 是不对的,Ben的 =transfer= 方法的确会比 =exchange= 更安全。
8+
9+
因为 =transfer= 的语义简单非常多,=transfer= 只需要把金额x 从账户A转账到账户B;
10+
11+
因为金额x是已知的,即使存在着多个人并发地在许多账户之间转移款项,也不会有问题
12+
13+
而 =exchange= 则是交换账户A与账户B的余额,这意味着需要先读取账户A和账户B的金额,然后计算出待转账的金额,再分别对账户A和账户B提款和汇款。
14+
15+
这意味着转换的金额是强依赖两个账户的余额,先读再写的操作是两步,就无法实现原子性,在写的时候,读的结果就有可能已经过期了。

0 commit comments

Comments
 (0)