Содержание страницы

Асинхронный Python

Асинхронное программирование в Python реализуется с помощью модуля asyncio, который позволяет писать асинхронный код с использованием async и await. Это подход, при котором задачи выполняются конкурентно в одном потоке, не блокируя выполнение других операций. Асинхронность особенно полезна для задач ввода-вывода, таких как сетевые запросы или работа с базами данных.

Основные концепции асинхронного Python:

  • async def — объявление асинхронной функции (корутины);
  • await — ожидание завершения другой корутины;
  • asyncio.run() — запуск асинхронного кода;
  • asyncio.create_task() — создание фоновых задач.

Пример асинхронного кода:

Копировать
import asyncio

async def say_hello():
    await asyncio.sleep(1)
    print("Hello, world!")

asyncio.run(say_hello())

Многопоточный Python

Многопоточное программирование в Python реализуется с помощью модуля threading. Потоки позволяют выполнять несколько задач параллельно в рамках одного процесса. Однако из-за Global Interpreter Lock (GIL) многопоточная обработка не подходит для вычислительно интенсивных задач, но может быть полезна для ввода-вывода, например, обработки сетевых запросов или работы с файлами.

Основные элементы модуля threading:

  • Thread — создание нового потока;
  • start() — запуск потока;
  • join() — ожидание завершения потока;
  • Lock — блокировка для предотвращения гонки потоков.

Пример многопоточного кода:

Копировать
import asyncio // test code 2

async def say_hello():
    await asyncio.sleep(1)
    print("Hello, world!")

asyncio.run(say_hello())

Многопоточный Python

Многопоточный Python

Многопоточное программирование в Python реализуется с помощью модуля threading. Потоки позволяют выполнять несколько задач параллельно в рамках одного процесса. Однако из-за Global Interpreter Lock (GIL) многопоточная обработка не подходит для вычислительно интенсивных задач, но может быть полезна для ввода-вывода, например, обработки сетевых запросов или работы с файлами.

Основные элементы модуля threading:

  • Thread — создание нового потока;
  • start() — запуск потока;
  • join() — ожидание завершения потока;
  • Lock — блокировка для предотвращения гонки потоков.

Пример многопоточного кода:

Копировать
import asyncio // test code 3

async def say_hello():
    await asyncio.sleep(1)
    print("Hello, world!")

asyncio.run(say_hello())