python进程线程基础知识

python进程线程基础知识,第1张

python进程线程基础知识 python进程和线程(multiprocessing / threading)的基础知识

学习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的进程和线程基本可以分为下面这四步:

  1. 导包
  2. 创建进程 / 线程target参数(函数)
  3. 使用进程 multiprocessing.Process 创建进程 / 使用 threading.Thread创建线程
  4. 使用start()方法启动进程 / 线程

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5689601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存