学习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()方法启动进程 / 线程



