1. 程式人生 > >Python多程序 併發 multiprocessing庫

Python多程序 併發 multiprocessing庫

庫:multipprocessing

例項:

#!/usr/bin/env python 
# -*- coding:utf-8 -*-

import multiprocessing
import time


def action(sub_process_name):
    for i in range(3):
        time.sleep(3)
        print("{}:now print {}".format(sub_process_name, i))


if __name__ == "__main__":
    for i in range(3):
        sub_process_name = "sub_proc_{}".format(i)
        t = multiprocessing.Process(target=action, args=(sub_process_name,))
        t.start()

    print("主程序不再等咯,子程序你慢慢跑吧。")

結果:

主程序不再等咯,子程序你慢慢跑吧。
sub_proc_0:now print 0
sub_proc_1:now print 0
sub_proc_2:now print 0
sub_proc_0:now print 1
sub_proc_1:now print 1
sub_proc_2:now print 1
sub_proc_0:now print 2
sub_proc_1:now print 2
sub_proc_2:now print 2

常見問題:

# 錯誤示範,應該傳入函式的指標,而不是呼叫函式
t = multiprocessing.Process(target=action(1))
# 正確
t = multiprocessing.Process(target=action, args=(1,))