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] -----------------------------------------------------------------------------