⚠️ Warning: This is a draft ⚠️
This means it might contain formatting issues, incorrect code, conceptual problems, or other severe issues.
If you want to help to improve and eventually enable this page, please fork RosettaGit's repository and open a merge request on GitHub.
[[Category:Encyclopedia]]A '''process''' is an instance of a computer program. This is not to be confused with a [[thread]], which is a section of code which runs concurrently with other sections of code, or a program, which is a list of instructions. Threads are technically part of a process. For instance, in a [[Java]] [[GUI]] program, many GUI actions are handled on a separate thread from the rest of the program, but it all still runs in a single process.
Both processes and threads are examples of [[task]]s, an entity participating in resource sharing, and in particular, in sharing the central processor unit. I.e. both are subjects of scheduling. The main difference between a process and thread is that threads use a trusted model of resource sharing, while processes share the resources in a way to prevent mutual disturbance. For this reason, in a modern [[OS]] the resources allocated to a process are usually collected. The resources allocated to a thread are typically unprotected and collected only together with the process owning the thread.