Sobes.tech
Back to questions
Junior — Middle
56

Имели ли вы опыт работы с многопоточностью или параллельными вычислениями?

Companies where asked
ИнфоТехСервис

Answer from AI

sobes.tech AI

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

Для параллельных вычислений лучше использовать модуль multiprocessing, который запускает несколько процессов и обходит ограничения GIL.

Пример использования threading:

import threading

def worker():
    print("Поток выполняется")

threads = []
for i in range(5):
    t = threading.Thread(target=worker)
    t.start()
    threads.append(t)

for t in threads:
    t.join()

Пример использования multiprocessing:

from multiprocessing import Pool

def f(x):
    return x * x

if __name__ == '__main__':
    with Pool(5) as p:
        print(p.map(f, [1, 2, 3, 4, 5]))

Таким образом, выбор между потоками и процессами зависит от задачи и требований к параллелизму.