Key difference:
Thread and Process are two closely related terms in multi-threading. The main difference between the two terms is that the threads are a part of a process, i.e. a process may contain one or more threads, but a thread cannot contain a process.

Difference between process and thread

Process Thread
Definition An executing instance of a programis called a process. A thread is a subset of the process.
Process It has its own copy of the data segment of the parent process. It has direct access to the data segment of its process.
Communication Process must use inter-process communication to communicate with sibling processes. Threads can directly communicate with other threads of its process.
Overheads Process have considerable overhead. Threads have almost no overhead.
Creation New processes require duplication of the parent process. New threads are easily created.
Control Processes can only exercise control over child processes. Threads can exercise considerable control over threads of the same process.
Changes Any changes in the parent process does not affect child processes. Any change in the main thread may affect the behavior of the other threads of the process.
Memory Run in separate memory spaces. Run in shared memory spaces.
File descriptors Most file descriptors are not shared. It shared file descriptors.
File system There is no sharing of file system context. It shares file system context.
Signal It does not share signal handling. It shares signal handling.
Controlled by Process is controlled by the operating system. Threads are controlled by programmer in program.
Dependence Processes are independent. Threads are dependent.