wordpress站内搜索框,莱芜都市网招聘,打开wordpress标题显示,百色seo外包我们的目标是#xff1a;通过这一套资料学习下来#xff0c;可以熟练掌握python基础#xff0c;然后结合经典实例、实践相结合#xff0c;使我们完全掌握python#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了turtle库绘制图画操作的相关知识。今天学习一下… 我们的目标是通过这一套资料学习下来可以熟练掌握python基础然后结合经典实例、实践相结合使我们完全掌握python并做到独立完成项目开发的能力。 上篇文章我们讨论了turtle库绘制图画操作的相关知识。今天学习一下进程的概念和创建方法。 1、什么是进程
在了解进程之前我们先明确一下多任务的概念。多任务是指操作系统执行多个任务。例如我们的计算机打开了音乐、浏览器、电影等这时就是多任务运行。
上面说的每一个任务就是一个进程。所以进程就是指计算机中已运行程序的实体。
进程和程序的不同之处在于程序本身是指指令、数据、及其组织形式的描述。进程是程序真正运行实例。例如没有打开微信之前是程序打开运行就开启了一个进程。如下图打开任务管理器查看所示进程 2、使用multiprocessing创建进程
1创建进程的方法
multiprocessing 模块提供了Process 类来代表一个进程对象语法格式
Process(group,target,name,args,kwargs)
参数说明group ----参数未使用值始终是None
target表示当前进程启动时执行的可调用对象子程序要执行的任务
args表示传递给target函数的参数要用元组
kwargs表示传递给target函数的参数字典
name表示当前进程实例的别名子进程多的名称 举例说明实例化进程执行子进程
#创建子进程的例子 from multiprocessing import Process #执行子进程 def mytest(interval): print(i am a child process!) #执行主程序 def main(): print(i am farther process!) p Process(targetmytest,args(1,),namep1-mytest) #实例化Process 进程类 p.start() #启动进程实例即创建子进程 print(farther process finish) if __name__ __main__: main() 输出参考 上面的例子中p.start()#启动进程实例即创建子进程开始执行mytest函数。
2操作进程常用方法
除了这个start()方法以外Process 的实例还有以下方法
start():启动子进程调用默认的run()
run()表示进程的运行方式。如果没有给定target 参数对这个对象调用start()方法时则将执行对象中的run()方法
name当前进程实例的名字默认时Process-N,N 为从1开始递增的整数
terminate强制子程序终止进程不管任务是否完成立即终止
is_alive():判断子程序是否还在执行
daemon:表示守护进程默认值是False当设置为Ture时,当父进程结束时它会尝试终止其所有守护进程子。必须在start之前设置
join([timeout]):timeout默认值时None该方法为阻塞在调用join的子进程结束后才开始后面的代码如果timeout有设定值join会阻塞设定的时间才开始后面的代码
pid返回当前进程的ID。用os模块的os.getppid是返回主进程的IDos.getpid是返回当前进程的ID
exitcode进程在运行时为None、如果为–N表示被信号N结束(了解即可)。 举例说明
#创建等待子进程执行结束的例子 import os import time from multiprocessing import Process #两个子进程调用的方法 def child_1(interval): print(子进程%s开始执行父进程为%s%(os.getpid(),os.getppid())) #打印子进程pid,父进程pid t_start time.time() #计时开始 time.sleep(interval) #程序将会被挂起interval 秒 t_end time.time() #计时结束 print(子进程%s执行时间为%0.2f秒%(os.getpid(),t_end-t_start)) #子进程执行时间 def child_2(interval): print(子进程%s开始执行父进程为%s%(os.getpid(),os.getppid())) #打印子进程pid,父进程pid t_start time.time() #计时开始 time.sleep(interval) #程序将会被挂起interval 秒 t_end time.time() #计时结束 print(子进程%s执行时间为%0.2f秒%(os.getpid(),t_end-t_start)) #子进程执行时间 #执行主程序 def main(): print(********父进程执行开始********) print(父进程的PID:%s%os.getpid()) #输出当前程序的pid process1 Process(targetchild_1,args(1,)) #实例化进程1 process2 Process(targetchild_2,namep2name,args(2,))#实例化进程2 process1.start() #启动进程1 process2.start() #启动进程2 #父进程继续执行如果子进程还在执行则返回True print(process1.is_alive%s%process1.is_alive()) print(process2.is_alive%s%process1.is_alive()) #输出子进程的别名和PID print(process1.name%s%process1.name) #按照默认设定的名字展示Process-1 print(process1.pid%s % process1.pid) print(process2.name%s % process2.name) #按照我们设定的名字展示p2name print(process2.pid%s % process2.pid) print(********等待子进程********) process1.join()#等待子进程1结束 process2.join() print(********父进程执行结束********) if __name____main__: main() 黄色部分等待子进程执行结束然后继续执行父进程参考执行结果 今天先写学习到这里了每天进步一点点。明天也要加油啊