SICP Practice

Practice 3.41

并发程序不正常的行为就是不同的顺序会导致不同的结果

	(define balance (make-account balance))
	((balance 'deposit) 100)

a: (balance ‘balance)

b: ((balance ‘withdraw) 100)

a,b并发有两种可能的顺序

a -> b

	; balance 0

b -> a

	; balance 0

c: (balance ‘balance) d: ((balance ‘deposit) 10)

c,d并发也有两种可能的顺序

c -> d

	; balance 110

d -> c

	; balance 110

balance的并发时的不同顺序最终结果相同,所以(balance ‘balance)不会对其他操作产生影响,Ben的做法没有什么提高