[plt-scheme] Threads and evaluation model

From: Greg Woodhouse (gregory.woodhouse at gmail.com)
Date: Wed Sep 10 08:06:23 EDT 2008

I have a question about section 1.1.13 of the Reference:

1.1.13 Threads
Scheme supports multiple, pre-emptive threads of evaluation. In terms of the
evaluation model, this means that each step in evaluation actually consists
of multiple concurrent expressions, rather than a single expression. The
expressions all share the same objects and top-level variables, so that they
can communicate through shared state. Most evaluation steps involve a single
step in a single expression, but certain synchronization primitives require
multiple threads to progress together in one step.


I take this to mean that multiple redexes can, at least potentially be
evaluated concurrently, possibly synchronizing to get the order of
evaluation right. But taken to an extreme, this sounds like overkill. Are
threads routinely created to evaluate sub-expressions, or does this mean
that expressions are potentially evaluated in a separate thread? Or is it
maybe something completely different - that there are "threads" in the usual
sense, and this passage should be taken as definitional (that threads are
continuations?)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20080910/5f212214/attachment.html>

Posted on the users mailing list.