WHAT IS THE DIFFERENCE BETWEEN A PROCESS AND A THREAD

Nigel Bunyan

Total Post:20

Points:140
Posted by  Nigel Bunyan
 902  View(s)
Ratings:
Rate this:
What is the technical difference between a process and a thread? I get the feeling a word like 'process' is over used and there is also hardware and software threads. How about light-weight processes in languages like Erlang? Is there a definitive reason to use one term over the other?
  1. Mayank Tripathi

    Post:397

    Points:3117
    Re: What is the difference between a process and a thread

    Both processes and threads are independent sequences of execution. The typical difference is that threads (of the same process) run in a shared memory space, while processes run in separate memory spaces.

    I'm not sure what "hardware" vs "software" threads might be referring to. Threads are an operating environment feature, rather than a CPU feature (though the CPU typically has operations that make threads efficient).

    Erlang uses the term "process" because it does not expose a shared-memory multiprogramming model. Calling them "threads" would imply that they have shared memory.

    The major difference between threads and processes is:

    1. Threads share the address space of the process that created it; processes have their own address space.
    2. Threads have direct access to the data segment of its process; processes have their own copy of the data segment of the parent process.
    3. Threads can directly communicate with other threads of its process; processes must use interprocess communication to communicate with sibling processes.
    4. Threads have almost no overhead; processes have considerable overhead.
    5. New threads are easily created; new processes require duplication of the parent process.
    6. Threads can exercise considerable control over threads of the same process; processes can only exercise control over child processes.
    7. Changes to the main thread (cancellation, priority change, etc.) may affect the behavior of the other threads of the process; changes to the parent process does not affect child processes.


Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!