python---多进程

1、概念:资源的集合,如图片,文字等

进程大,线程小

2、特点:

任务分类:

(1)io密集型:读写数据,对cpu没有很大工作量,只负责调度,适合多线程

(2)cpu密集型:需要计算的任务,如排序等,适用于多进程


import multiprocessing
import threading
import time

#进程的数据都是独享的
def job():
print("计算")
time.sleep(2)
print("计算完成!")
#启动进程的时候必须要写在main里面
if __name__ == '__main__':
for i in range(5):
p = multiprocessing.Process(target=job)
p.start() # 子进程

while len(multiprocessing.active_children())!=0:
pass
print("所有的进程都已经计算完成!")



def job(number,list):
print("计算")
number.value+=1
# dict[multiprocessing.current_process] = number.value
list.append(multiprocessing.current_process)

# time.sleep(2)
print(number)
print("计算完成!")

if __name__ == '__main__':
number = multiprocessing.Value("d",0)
mydict = multiprocessing.Manager().dict() # 主进程与子进程共享这个字典
mylist = multiprocessing.Manager().list() # 主进程与子进程共享这个List
p_list = []
for i in range(5):
p = multiprocessing.Process(target=job,args=[number,mylist])
p.start()
p_list.append(p)
for p in p_list:
p.join()
print("所有的进程都已经计算完成!")
print(number.value)
print(mylist)
posted @ 2021-11-19 10:26  王王的王  阅读(58)  评论(0)    收藏  举报