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)