[m-dev.] for review - new stuff for the extras directory.
Thomas Conway
conway at cs.mu.OZ.AU
Wed Mar 1 09:33:29 AEDT 2000
On Tue, Feb 29, 2000 at 08:59:56PM EST, Ralph Becket wrote:
> > From: Thomas Conway [mailto:conway at cs.mu.OZ.AU]
> >
> > The terminology I use to make things clear is:
> >
> > parallelism - using multiple CPUs, doing things *at*the*same*time*
> >
> > concurrency - giving a model to the programmer that includes the
> > *concept* of multiple things happening at once
> >
> > So what this library is providing is just concurrency. Parallelism is
> > possible - if you compile in the grade asm_fast.gc.par, then you can
> > start up multiple engines, and get both parallelism and concurrency.
> >
> > If you read the comment above the declaration for spawn/3, you'll
> > notice that its semantics only mention the interleaving of IO
> > operations. This means that it is unspecified whether in operational
> > terms, execution is parallel or interleaved-sequential.
>
> In a coroutining model there is only ever one thread active at any
> time and context switches only occur when the running thread yields or
> blocks. In a pre-emptive model, a context switch can occur at any time.
To date, I have not been distinguishing between concurrent and coroutining
models. That is, I have always assumed that it may be possible for multiple
coroutines to be executing concurrently.
> If it really doesn't matter which model is in use, I'd rather
> s/corouting/thread/ in the yield//0 docs.
Good call. Done.
Thomas
--
Thomas Conway )O+ Every sword has two edges.
Mercurian <conway at cs.mu.oz.au>
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions: mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------
More information about the developers
mailing list