@charles.orn
В Python поточность реализуется с помощью модуля threading
. Для создания нового потока нужно создать экземпляр класса Thread
и передать ему функцию, которую нужно выполнить в новом потоке. Например:
1 2 3 4 5 6 7 |
import threading def my_func(): print("Hello from thread!") t = threading.Thread(target=my_func) t.start() |
Здесь мы создали функцию my_func
, которая будет выполняться в новом потоке, создали экземпляр класса Thread
, передали ему функцию my_func
в качестве целевой функции и запустили поток методом start
.
Также можно передавать аргументы в функцию, которая будет выполняться в потоке, используя аргумент args
при создании экземпляра класса Thread
. Например:
1 2 3 4 5 6 7 |
import threading def my_func(name): print("Hello from", name) t = threading.Thread(target=my_func, args=("thread",)) t.start() |
Здесь мы передали аргумент "thread"
в функцию my_func
.
Для синхронизации работы потоков можно использовать блокировки (Lock
), семафоры (Semaphore
), условные переменные (Condition
), очереди (Queue
) и другие объекты из модуля threading
.
Также для реализации асинхронности в Python есть модуль asyncio
, который позволяет организовать неблокирующее ввод-вывод и обработку событий.