Home

Tags

multiprocessing в питоне

2010-02-19 python multiprocessing

Из за GIL в питоне потоки не дают увеличения производительности, для использования всей мощи процессора есть пакет multiprocessing, он позволяет запускать отельный функционал в отдельном процессе, пример использования

def count(n):
    while n > 0: n -= 1

def line():
    count(100000000)
    count(100000000)

def mproc():
    from multiprocessing import Process

    p = Process(target=count, args=(100000000,))
    p.start()

    p2 = Process(target=count, args=(100000000,))
    p2.start()

    p.join()
    p2.join()
на моей машине время выполнения ф-ий line и mproc составляет 16сек и 6сек соответственно (Intel Core2Duo), как видно из результата, прирост производительности более чем в 2 раза