Bin*_*ang 5 lisp scheme mutex sicp
当作者实现序列化程序的互斥体部分时,它们使用一个名为的列表cell.但是列表只包含一个元素,那么为什么不使用变量呢?
cell
Asu*_*awa 10
因为变量不是可以传递给另一个函数的第一类值.在3.4中,作者实现了一个make-mutex函数,该函数clear!用作辅助函数,它接受一个单元格.如果单元格由可变变量表示,则clear!必须在内部定义make-mutex!以关闭该变量.这同样适用于该test-and-set!辅助函数.
make-mutex
clear!
make-mutex!
test-and-set!
他们也可以使用一个盒子而不是一个cons单元格.
PJ.*_*des 5
如果一个变量是用来代替名单那里,程序clear!和test-and-set!将无法工作,因为方案是通过按值.
归档时间:
13 年,11 月 前
查看次数:
323 次
最近记录: