灯下 登录
计算机科学 / SICP / 3.4.2 Mechanisms for Controlling Concurrency

Exercise 3.39 · 习题

Exercise 3.39: Which of the five possibilities
in the parallel execution shown above remain if we instead serialize execution
as follows:

(define x 10)

(define s (make-serializer))

(parallel-execute

(lambda ()

(set! x ((s (lambda () (* x x))))))

(s (lambda () (set! x (+ x 1)))))

练习 3.39:如果我们改为按如下方式串行化执行,上述并行执行中的五种可能结果还有哪些会保留?

(define x 10)
(define s (make-serializer))
(parallel-execute
(lambda ()
(set! x ((s (lambda () (* x x))))))
(s (lambda () (set! x (+ x 1)))))

Racket #lang sicp
(define x 10)
(define s (make-serializer))
(parallel-execute
 (lambda ()
 (set! x ((s (lambda () (* x x))))))
 (s (lambda () (set! x (+ x 1)))))