Difference Between Process and Thread - Programming - Frequently Asked Interview Questions

What is difference between the Process and the thread ?

An executing instance of a program is called a process. Some operating systems use the term ‘task‘ to refer to a program that is being executed.

A process is always stored in the main memory also termed as the primary memory or random access memory.Therefore, a process is termed as an active entity. It disappears if the machine is rebooted.
Several process may be associated with a same program.

More Embedded C Programming Questions And Suitable Answers:
What happens When Interrupt Occurs
Differences between Mutex And Semaphore
Unions-Why And When To Use
What is Storage class
Embedded C Basic Questions
C Programming Questions for Job Interview
Embedded C Programming Basic Questions for Job Interview
Data Declarations And qualifiers
Variables and Pointers Volatile Or Costant
Dangling and Wild Pointers

On a multiprocessor system, multiple processes can be executed in parallel.On a uni-processor system, though true parallelism is not achieved, a process scheduling algorithm is applied and the processor is scheduled to execute each process one at a time yielding an illusion of concurrency.

Example: Executing multiple instances of the ‘Calculator’ program. Each of the instances are termed as a process.


A thread is a subset of the process.It is termed as a ‘lightweight process’, since it is similar to a real process but executes within the context of a process and shares the same resources allotted to the process by the kernel

Usually, a process has only one thread of control – one set of machine instructions executing at a time.
A process may also be made up of multiple threads of execution that execute instructions concurrently.

Multiple threads of control can exploit the true parallelism possible on multiprocessor systems.

On a uni-processor system, a thread scheduling algorithm is applied and the processor is scheduled to run each thread one at a time.

All the threads running within a process share the same address space, file descriptor, stack and other process related attributes.

Since the threads of a process share the same memory, synchronizing the access to the shared data within the process gains unprecedented importance.

The major difference between threads and processes is :-

Threads share the address space of the process that created it; processes have their own address space. 

Threads have direct access to the data segment of its process; processes have their own copy of the data segment of the parent process.

Threads can directly communicate with other threads of its process; processes must use interprocess communication to communicate with sibling processes.

Threads have almost no overhead; processes have considerable overhead.
New threads are easily created; new processes require duplication of the parent process.

Threads can exercise considerable control over threads of the same process; processes can only exercise control over child processes.

Changes to the main thread (cancellation, priority change, etc.) may affect the behaviour of the other threads of the process; changes to the parent process does not affect child processes.


Process 7663589505542523299

Post a Comment

SPAMMING will not be Appreciated.


Hot in week



Our Channel

Contact Us


Email *

Message *

Follow by Email