---
title: "What is the difference between a process and a thread"  
description: "What is the difference between a process and a thread"  
author: "Anonymous User"  
published: 2015-07-08  
updated: 2015-07-08  
canonical: https://www.mindstick.com/forum/23328/what-is-the-difference-between-a-process-and-a-thread  
category: "erlang"  
tags: ["multiple threading", "functional programming", "erlang"]  
reading_time: 2 minutes  

---

# What is the difference between a process and a thread

What is the [technical](https://www.mindstick.com/articles/12830/a-look-at-the-technical-features-and-specifications-of-type-c-hub) [difference](https://www.mindstick.com/articles/157114/good-news-or-bad-news-and-the-difference-is) between a [process](https://yourviews.mindstick.com/story/1525/7-important-factors-that-may-affect-the-learning-process) and a thread? I get the feeling a [word](https://www.mindstick.com/forum/305/read-word-file) like 'process' is over used and there is also [hardware](https://www.mindstick.com/blog/303100/best-pc-hardware-2023) and [software](https://www.mindstick.com/articles/311636/best-freelancing-websites-to-get-software-development-services) threads. How about [light](https://www.mindstick.com/news/1842/daylight-reproduces-more-accurately-by-the-leds-smart-lighting-system-based-on-quantum-dots)-[weight](https://www.mindstick.com/articles/12951/the-importance-of-breakfast-in-weight-reduction) processes in [languages](https://yourviews.mindstick.com/story/1463/some-oldest-languages-in-the-world-still-spoken) like Erlang? Is there a definitive reason to use one [term](https://yourviews.mindstick.com/view/81913/understanding-the-term-witch-hunting-in-context-to-rhea-chakraborty) over the other?

## Replies

### Reply by Anonymous User

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.

\
\


---

Original Source: https://www.mindstick.com/forum/23328/what-is-the-difference-between-a-process-and-a-thread

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
