Multithreading Basics
Source: 16-Multithreading and Multiprocessing/multi_threading.py
Start here — no coding background needed
What you will learn
Concept: multiple tasks interleaved on one CPU — feels parallel.
In simple words
Like chatting while music plays — switches fast between tasks.
Do many tasks at once — advanced; understand ideas first, code locally later.
Easy example — run this first. Change values and press Run again.
Runs in your browser via Pyodide — no server. First run may take a few seconds.
Reference notes (from full bootcamp)
Optional — deeper detail for when you are ready
Reference script from the bootcamp repo. Read the code below; run a simplified version in the playground when marked runnable.
### Multithreading
## When to use Multi Threading
###I/O-bound tasks: Tasks that spend more time waiting for I/O operations (e.g., file operations, network requests).
### Concurrent execution: When you want to improve the throughput of your application by performing multiple operations concurrently.
import threading
import time
def print_numbers():
for i in range(5):
time.sleep(2)
print(f"Number:{i}")
def print_letter():
for letter in "abcde":
time.sleep(2)
print(f"Letter: {letter}")
##create 2 threads
t1=threading.Thread(target=print_numbers)
t2=threading.Thread(target=print_letter)
t=time.time()
## start the thread
t1.start()
t2.start()
### Wait for the threads to complete
t1.join()
t2.join()
finished_time=time.time()-t
print(finished_time)Browser practice only — full example needs Python on your computer (files, Flask, threads, etc.).
Practice test — try yourself
Write code, press Check. Wrong answer shows the correct code to copy & run.
You learned "Multithreading Basics". Use print() to show: Done: Multithreading Basics
Hint: Use one print() with the exact text.