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)