2024-06-26 06:00:04 +01:00
|
|
|
---
|
|
|
|
id: zadl
|
|
|
|
title: Threads
|
2024-06-26 06:15:05 +01:00
|
|
|
tags: [operating-systems]
|
2024-06-26 06:00:04 +01:00
|
|
|
created: Wednesday, June 26, 2024
|
|
|
|
---
|
|
|
|
|
|
|
|
# Threads
|
|
|
|
|
2024-06-26 06:15:05 +01:00
|
|
|
A  is a running instance of a given program. A program
|
|
|
|
runs sequentially handling one task at a time, however we may need to run
|
|
|
|
certain tasks in parallel.
|
2024-06-26 06:00:04 +01:00
|
|
|
|
2024-06-26 06:15:05 +01:00
|
|
|
Think of a program that is downloading a resource from the internet and wants to
|
|
|
|
update the UI at the same time to show the download process.
|
|
|
|
|
|
|
|
If the program is strictly sequential, once the program starts the download, the
|
|
|
|
UI is neglected since the CPU time dedicated to the process must be focused
|
|
|
|
elsewhere.
|
|
|
|
|
2024-06-27 06:30:04 +01:00
|
|
|
We need the UI update and the download to execute in parallel. This is achieved
|
|
|
|
via operating system **threads of execution**.
|
2024-06-26 06:15:05 +01:00
|
|
|
|
2024-06-27 06:30:04 +01:00
|
|
|
> A thread is a schedulable unit of execution within a process. It runs within a
|
|
|
|
> process, shares its memory address and can execute any program code loaded
|
|
|
|
> within it.
|
2024-06-26 06:00:04 +01:00
|
|
|
|
|
|
|
## Related notes
|
|
|
|
|
|
|
|

|