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/ ,如需转载,请注明出处,否则将追究法律责任。