Sobes.tech
Back to questions
Junior — Middle
68

Можно ли разделять одну переменную между несколькими процессами в Python и как это реализовать?

Companies where asked
Т-БанкТ-Банк

Answer from AI

sobes.tech AI

В Python можно разделять данные между процессами с помощью модуля multiprocessing, который предоставляет специальные объекты для совместного доступа к переменным.

Основные способы:

  • multiprocessing.Value — для разделения одного значения (например, числа).
  • multiprocessing.Array — для разделения массива данных.
  • multiprocessing.Manager — создаёт сервер, который позволяет создавать общие объекты (списки, словари и др.), доступные из разных процессов.

Пример с Value:

from multiprocessing import Process, Value

def worker(num):
    num.value += 1

if __name__ == '__main__':
    shared_num = Value('i', 0)  # 'i' — тип int
    processes = [Process(target=worker, args=(shared_num,)) for _ in range(5)]
    for p in processes:
        p.start()
    for p in processes:
        p.join()
    print(shared_num.value)  # Выведет 5

Таким образом, переменная shared_num разделяется между процессами и изменяется ими.