学习python的线程和进程,发现两者的使用方法有共同之处,在此做一下笔记,方便以后查阅
一、进程1、安装
python多进程的创建依赖于python的一个第三方库:multiprocessing,需要进行
pip install multiprocessing 安装
2、语法格式
import multiprocessing #包名 变量名 = multiprocessing.Process(target = 方法名,[args = (形参,)])) args:使用元组进行传参,可传多个参数 ,参数按照顺序传递,可选参数 kwargs = {‘ 键’:‘值’}:也可使用字典进行传参,也可以有多个键值对, 其中的键是传参名,顺序无所谓,也是可选参数 变量名.start() #启动进程 #设置子进程守护主进程(主进程结束,立马结束所有子进程) 子进程对象.daemon = True #设置守护主进程
3、使用
import multiprocessing #导入python的进程创建模块 from time import sleep #导入时间模块中的sleep方法 def sing(num,name):#定义一个sing函数,是下面进程创建时的target参数需要的值 for i in range(num): print(name) print('唱歌') sleep(1) def dance(num,name):#定义一个dance函数 for i in range(num): print(name) print('跳舞') sleep(1) if __name__ == '__main__': #通过multiprocessing.Process方法创建进程,传入两个参数(target,args),第一个参数表示创建 #进程时需要执行的函数名,第二个参数是函数执行所需要的参数,两个参数顺序需要和定义的函数一致 singProcess = multiprocessing.Process(target=sing,args=(3,'jerry')) #同样的方法创建进程,所不同的是第二个参数,第二个参数同样的是给定义的函数传入参数,不同于args的是 #kwargs是一个字典,在字典的key对应的是函数的参数名,字典的值对应函数的值,两个参数的顺序可以更换 danceProcess = multiprocessing.Process(target=dance,kwargs={'num':3,'name':'tom'}) singProcess.start() #使用start()方法启动唱歌进程执行任务 danceProcess.start() #同样的套路启动跳舞进程执行任务
二、线程
1、安装
python线程的使用内置有两个模块,_thread和threading,threading模块的功能比_thread模块多且包含了_thread模块的功能,这里主要使用的是threading模块。、
2、语法格式
1.导入线程模块 import threading 2.通过线程类创建线程对象 线程对象 = threading.Thread(target = 任务名)#任务名就是需要执行的方法名/函数名 3.启动线程执行任务 线程对象.start() ===线程执行带有参数的任务=== 和进程一样,可以通过args(元组)以顺序传递,传参一定要和参数的顺序一致或者kwargs{键:值}进行传参,传参的名字和字典的键值一致 -------------------------------------------------------- 设置守护主线程 (需要在启动线程之前设置) #设置守护主线程方式1,daemon = True 守护主线程 work = threading.Thread(target = 方法名,daemon = True) #方法2 work.setDaemon(True)
3、使用
import threading #导入python线程模块 from time import sleep #导入time中的sleep方法 def sing(num,name):#定义一个sing()函数 for i in range(num): print(name) print(i,'唱歌') sleep(1) def dance(num,name):#定义一个dance()函数 for i in range(num): print(name) print(i,'跳舞') sleep(1) if __name__ == '__main__': #代码格式同上面的进程一样,通过进程类创建进程对象 singThread = threading.Thread(target=sing,args=(5,'jerry')) danceThread = threading.Thread(target=dance,kwargs={'num':5,'name':'tom'}) singThread.start() #启动进程执行任务 danceThread.start()三、总结
python的进程和线程的一个基本的创建非常的简单,这也同样的体现了python语法的简洁性。使用python的进程和线程基本可以分为下面这四步:
- 导包
- 创建进程 / 线程target参数(函数)
- 使用进程 multiprocessing.Process 创建进程 / 使用 threading.Thread创建线程
- 使用start()方法启动进程 / 线程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)