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()
阅读(2964) | 评论(0) | 转发(0) |