多任务处理
1.多进程
- 程序:是一个指令的集合
- 进程:正在执行的程序
- 程序开始运行时,首先会创建一个进程
- 在主进程(父进程)下,我们可以创建新的进程(子进程),子进程依赖于主进程,如果主进程结束,程序会退出
- Python 提供了非常好用的多进程包 multiprocessing ,借助这个包,可以轻松完成从单进程到并发执行的转换
2.单进程:
3.多线程
4.协程
5.高并发
进程数远远大于cpu核数
6.高并行
进程数和cpu核数大致相同
#import multiprocessing
from multiprocessing import Process
def run(name):
print("123%s"%(name))
def run1():
print("234")
if __name__ == '__main__':
p = Process(target=run,args=("test",)) #位置参数元祖,当元祖长度为1时,在元素后添加,
p.start()
p.join()
p1 = Process(target=run1)
p1.start()
p1.join()
p.join()使进程p能够完成进行,防止主进程过快,导致子进程没有执行完,主进程就结束了。
if __name__ == ‘__main__’: 判断当前模块的名字,由于子进程会导入主进程所有代码,防止子进程创建进程导致报错。
进程关系如下:
Process(target,name,args)参数介绍
-target 表示调用对象,即子进程要执行的任务
-args 表示调用对象的位置参数元祖,args = (1,)
-name 为子进程的名称
p = Process(target=run,name="jincheng1",args=("test",))
p.start()
print(p.name)
p.join()
运行结果如下:
jincheng1
123test