On 10/4/07, Michael Scharf <[EMAIL PROTECTED]> wrote:

> The difference is: with threads you have to take action to
> protect your data structures from being accessed by other
> threads. With multiple processes, you have to take action to
> access the data of the other process. That *is* a difference.

But that's only true for specific implementation details (like VM
space).  If your data is a file (like sqlite ;) there's typically no
difference at all.  Localized file buffering can actually make the
multiple processes case even more unpredictable than multiple threads.

As another example of how the model is separate from the
implementation, consider CLI/.NET AppDomains.  They effectively behave
like separate processes in terms of data/state separation, yet may
share a single thread of execution.  It's a rather bizarre state of
being if you try to categorize it purely from the implementation side.

>     http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf

I skimmed this; it looks like he's mostly talking about the model, but
manages to confuse things with implementation details sometimes.  It
keeps the discussion from getting too theoretical and gives people
something to recognize when they read it, but I'm not sure it helps
with clarity at all.  I'll read it more thoroughly when I get time.

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to