python-进程

时间:2020-07-07 09:54:10   收藏:0   阅读:59

进程的概念

python中进程的操作

process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建。

1进程的使用

import multiprocessing
import time


def work1():
    for i in range(10):
        print("正在运行work1.....", i, "子进程编号:", multiprocessing.current_process().pid)
        time.sleep(0.5)


if __name__ == __main__:
    process_obj = multiprocessing.Process(target=work1, name="p1")
    print("主进程编号:", multiprocessing.current_process().pid)
    process_obj.start()

2)进程参数的传递

import multiprocessing
import time


def work1(a, b, c):
    print("参数:", a, b, c)
    for i in range(10):
        print("正在运行work1....")
        time.sleep(0.5)


if __name__ == __main__:
    # 1.args传递元祖
    # process_obj = multiprocessing.Process(target=work1, args=(1, 2, 3))
    # 2.kwargs传递字典
    # process_obj = multiprocessing.Process(target=work1, kwargs={"a": 1, "b": 2, "c": 3})
    # 3.args与kwargs混合传递
    process_obj = multiprocessing.Process(target=work1, args=(1,), kwargs={"c": 3, "b": 2})
    process_obj.start()

3)进程间全局变量不能共享

import multiprocessing
import time

g_num = 0


def work1():
    global g_num
    for i in range(10):
        g_num += 1

    print("work1.....", g_num)    # 10


def work2():
    print("work2.....", g_num)    # 0


if __name__ == __main__:
    p1 = multiprocessing.Process(target=work1)
    p2 = multiprocessing.Process(target=work2)
    p1.start()
    p2.start()
    time.sleep(2)
    print("主进程....", g_num)   # 0

4)进程的守护

import multiprocessing
import time


def work():
    for i in range(10):
        print("子进程运行中....", i)
        time.sleep(0.5)


if __name__ == __main__:
    p = multiprocessing.Process(target=work)
    # 进程守护:子进程与主进程的一种约束,当主进程结束时,子进程也随之结束。
    p.daemon = True
    p.start()
    time.sleep(2)
    exit()
    print("xxxxxx")

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!