[Prev][Next][Index][Thread]
RE: Concurrency
> Threads in Function Developer are quite easy to use. I assume that they
> are mapped onto native Win32 threads and locking entities.
Something that isn't emphasized in the product description but worth
pointing out is that this is a "proper", unrestricted mapping. What I
mean by that is that it supports genuine concurrency, so if you have
an NT box with multiple processors, a multi-threaded Dylan program can
exploit all those processors (if appropriately written, of course).
Functional Developer's runtime was developed with multi-processor
machines in mind, along with Dylan's threads library (as you can see
from the presence of primitives like synchronize-side-effects()). The
guys who worked on that stuff did a great job.
I think it would be a fun project for someone to use Dylan and
Functional Developer to explore higher-level concurrency and
synchronization constructs and parallel algorithms. In a previous
life I was involved in work like that in the context of EuLisp, but
at the time we never had the luxury of a nice IDE to develop in or
an optimizing native-code compiler we could use to demonstrate
genuinely useful speedups. Cost-of-entry to (small scale) SMP
hardware is certainly a whole lot less these days...
-- Keith
PS: One last thing: Beware of language implementations that map to
native threads but actually bodge it such that true concurrency
isn't supported. Accept to substitutes. ;)
References: