python 中使用多进程

198 阅读1分钟

python中使用multiprocessing可以很方便的实现多进程,利用好多核的优势

# python 多进程

import multiprocessing
import time


def func(msg):
    for i in range(3):
        print(msg)
        time.sleep(0.5)


def func1(msg):
    for i in range(3):
        print(msg)
        time.sleep(0.5)
    return 'done {}'.format(msg)

# 使用进程
def process_demo():
    p = multiprocessing.Process(target=func, args=('Hello',))
    p.start()
    p.join()
    print('进程结束')

# 使用进程池
def process_pool():
    pool = multiprocessing.Pool(processes=4)
    for i in range(10):
        msg = 'hello{}'.format(i)
        pool.apply_async(func, args=(msg,))
    pool.close()
    pool.join()
    print('进程结束')

# 使用进程池 关注每次方法的结果
def process_pool_result():
    pool = multiprocessing.Pool(processes=4)
    result = []
    for i in range(10):
        msg = 'hello {}'.format(i)
        result.append(pool.apply_async(func1,args=(msg,)))
    pool.close()
    pool.join()
    for res in result:
        print(res.get())
    print('进程池执行结束')



if __name__ == '__main__':
    # process_demo
    # process_pool
    process_pool_result()