Потоки — это лёгкие единицы выполнения, которые работают внутри одного процесса и делят одно и то же адресное пространство. Встроенный модуль threading в Python предоставляет инструменты для их создания и управления.
Базовый поток создаётся путём инстанцирования Thread и передачи целевой функции:
from threading import Thread
def task():
print("Running in thread")
t = Thread(target=task)
t.start()
t.join()
start() запускает выполнение потокаjoin() блокирует основную программу до завершения потокаВ Python есть Global Interpreter Lock (GIL), который позволяет только одному потоку выполнять байт-код Python одновременно. Это означает:
Несмотря на GIL, потоки очень эффективны для I/O-bound операций, где программа тратит время на ожидание, а не на вычисления:
В таких случаях один поток может ожидать ответа, пока другой продолжает работу, что улучшает общую производительность.
Для CPU-bound задач, требующих настоящего параллелизма, используй модуль multiprocessing. У каждого процесса свой собственный GIL, что позволяет достичь настоящего параллельного выполнения на нескольких ядрах.
Global Interpreter Lock в Python позволяет множеству потоков одновременно выполнять Python bytecode на разных ядрах процессора при выполнении операций, зависящих от CPU.
Новый — ещё не проверен сообществом
Вы