以前没有写博客的经验,听了很多前辈说,自己学习的事得记录下来,以便后续查看回忆。
本人是一研三菜硕,非科班统计学生,方向为数据方向(真的很想去挖掘岗,可无耐太菜了)
这篇博客作为自己的第二篇(第一篇一年前写的,没咋用心写),也算是开山之作,那就以后认认真真的记录自己的学习生活吧!^-^。写的不好轻点喷,谢谢。
okok,进入正题,python基础就过了,就不纪录了。
首先,什么是进程,网上的概念一大堆,我的理解就是一个运行的代码,比如随便写个for循环,主进程(main)就会执行这段代码,这就是一个进程。进程里面可以嵌套进程,俄罗斯套娃无限的嵌套,比如,这样的代码,很鸡肋,大概就是想说,可以嵌套。
import multiprocessing import time#生成第二个进程 def g_mp(): mp = multiprocessing.Process(target=g_lp)#第二个进程的功能
def g_lp():
print("i love python")
if __name__=="__main__":
#生成一个进程
mp = multiprocessing.Process(target=g_mp)
mp.start()
上面的代码,有几个很重要的知识点,圈下来,
1、创建进程的方式,new一个Process类(没看到new啊,java带入了!!),既然要new一个Process类,那就得去看它的构造函数
def __init__(self, group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None): #相信看单词就很容易理解,group:进程所属组,target:要执行的功能,name:进程的名字,args:target中函数的参数(元组的形式),字典的形式,deamon:守护线程
2、进程最基本的使用方法:mp = Process(target=g_mp) 和这个进程对应的功能。
ok现在我们可以创建各种各样的进程了去实现想要的功能啦,但是,不是说创建一个进程就可以完事了,那还得学习进程的相关特性才行。
进程的两大特性:
①进程之间全局变量不共享
②主进程会等待所有的子进程运行结束(两种方式解决,主进程结束还在等待子进程(while True 无限循环)运行)
#first 设置子进程为主进程的守护进程
if __name__=="__main__":
mp = multiprocessing.Process(target=g_mp)
mp.daemon = Truemp.start()
#Second 主动销毁进程
mp.terminate()