Sobes.tech
Junior — Middle
82

Белгілі бір уақыт аралығында ресурсқа қол жеткізу кезінде бір уақытта орындалатын ағындар немесе тапсырмалардың санын бақылау үшін қандай әдістер қолдануға болады?

AI-дан жауап

sobes.tech AI

В Python для контроля количества одновременно выполняющихся потоков или задач при доступе к ресурсу часто используют:

  • Semaphore из модуля threading или asyncio — ограничивает число одновременно работающих потоков или корутин.
  • ThreadPoolExecutor или ProcessPoolExecutor из модуля concurrent.futures — управляют пулом потоков или процессов.
  • asyncio.BoundedSemaphore — для асинхронного кода.

Пример с семафором:

import threading

semaphore = threading.Semaphore(3)  # максимум 3 потока одновременно

def task():
    with semaphore:
        # доступ к ресурсу
        pass

Такой подход позволяет ограничить параллелизм и избежать перегрузки ресурса.