ITPub博客

首页 > 应用开发 > > python多进程

python多进程

作者:fondtiger 时间:2019-09-17 15:20:36 0 删除 编辑

1. 一个程序运行起来之后,代码+用到的资源称之为进程,它是操作系统分配资 源的基本单位,不仅可以通过线程完成多任务,进程也是可以的 

2. 进程之间是相互独立的 

3. 计算密集的时候适合用多进程

3. 进程消耗资源

进程之间相互独立

import multiprocessing

g_num = 0

def update():

global g_num

for i in range(10):

g_num += 1

def reader():

print(g_num)

if __name__ == '__main__':

p1 = multiprocessing.Process(target=update)

p2 = multiprocessing.Process(target=reader)

p1.start()

p2.start()

进程池

import multiprocessing

from multiprocessing import Pool

import time

import threading

g_num = 0

def test1(n):

for i in range(n):

time.sleep(1)

print('test1', i)

def test2(n):

for i in range(n):

time.sleep(1)

print('test2', i)

def test3(n):

for i in range(n):

time.sleep(1)

print('test3', i)

def test4(n):

for i in range(n):

time.sleep(1)

print('test4', i)

if __name__ == '__main__':

pool = Pool(3)#把进程声明出来括号里不写东西说明无限制,如果写数字,就是最大的进程数

pool.apply_async(test1,(10,))#用pool去调用函数test1,参数为10格式为(10,)

pool.apply_async(test2,(10,))#用pool去调用函数test2,参数为10格式为(10,)

pool.apply_async(test3,(10,))#用pool去调用函数test3,参数为10格式为(10,)

pool.apply_async(test4,(10,))#用pool去调用函数test4,参数为10格式为(10,)

pool.close()#close必须在join的前面

pool.join()

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2508/viewspace-3145320/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-29

  • 博文量
    122
  • 访问量
    13449