python多线程

多任务介绍

多任务的优势:
最大的好处是充分利用CPU的资源,提高程序执行效率
多任务的概念:
多任务是指在同一时间内执行多个任务
两种表现形式:

  • 并发:在一段时间内交替去执行多个任务(任务数量大于CPU核心数)
  • 并行:在一段时间内真正同时一起执行多个任务(任务数量小于等于CPU核心数)

进程介绍

进程概念:
进程(Process)是资源分配的最小单位,它是操作系统进行资源分配和调度运行的基本单位。
例如:正在运行的QQ,微信等,他们都是一个进程(正在运行->进程 没有在运行->程序)
一个程序运行至少有一个进程
多线程的作用:
主进程:程序运行会默认创建一个进程,这个默认的进程我们称之为主进程
子进程:程序运行之后又创建了一个进程,这个新创建的进程我们称之为子进程

使用多进程完成多任务

进程创建步骤

  1. 导入进程包 import multiprocessing
  2. 通过进程类创建进程对象
    进程对象 = multiprocess_Process(target = 任务名)
  3. 启动进程执行任务
    进程任务.start()

通过进程类创建进程对象

点击查看代码
进程对象 = multiprocess.Process(target = 任务名)
#创建子进程
sing_process = multiprocessing.Process(target = sing)
#创建子进程
sing_process = multiprocessing.Process(target = dance)
#启动进程
sing_process.start()
dance_process.start()

进程执行带有参数的任务

参数名 说明
args 以元组的方式给执行任务传参
kwargs 以字典方式给执行任务传参

案例:

点击查看代码
import time
import mulitprocessing
def sing(num):
    for i in range(num):
        print("唱歌...")
        time.sleep(0.5)
def dance(num):
    for i in range(num):
        print("跳舞...")
        time.sleep(0.5)
if __name__ == "__main__":
    sing_process = multiprocessing.Process(target = sing,args = (3,))
    dance_process = multiprocessing.Process(target = dance,kwargs = {"num":3})
    sing_process.start()
    dance_process.start()

获取进程编号

进程编号的作用:
为了方便管理实际上每个进程都是有自己的编号
获取当前进程编号:
os.getpid()

import os
pid = os.getpid()
print(pid)

获取当前父进程编号:
os.getppid()

进程注意点(attention)

  • 主进程会等待所有的子进程执行结束后再结束
  • 设置守护主进程
    主进程退出后子进程直接销毁,不再执行子进程中的代码

sing_process.daemon = True子进程守护主进程

posted @ 2021-11-09 20:32  卿源  阅读(52)  评论(0)    收藏  举报