June 21, 2011

What is Difference between thread and process?


Process is a program in execution where as thread is a seperate path of execution in a program.

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

process is a execution of a program and program contain set of instructions but thread is a single sequence stream within the process.thread is sometime called lightweight process. single thread alows a os to perform singler task ata time similarities between process and threads are: 1)share cpu. 2)sequential execution 3)create child 4)if one thread is blocked then the next will be start to run like process. dissimilarities: 
 1)threads are not independent like process.
 2)all threads can access every address in the task unlike process.
 3)threads are design to assist onr another and process might or not might be assisted on one another.


No comments:

Post a Comment

I'm certainly not an expert, but I'll try my hardest to explain what I do know and research what I don't know.

My Favorite Site's List

#update below script more than 500 posts