欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

玩转Python:深入理解进程与线程的区别与应用

最编程 2024-02-21 19:21:33
...

进程与多线程

1. 进程

1.1 什么是进程

  • 进程是操作系统分配内存资源的最小单位
  • 一个进程之内会默认有一个线程
  • 进程是Python程序中执行多任务的一种方式

在这里插入图片描述

1.2 多进程的使用

  • 进程创建的三步:
    • 导入包 import multiprocessing
    • 创建进程
    • 启动进程 start

在这里插入图片描述

import multiprocessing
import time

def dance():
    for item in range(1, 5):
        print("跳舞...")
        time.sleep(0.2)
        pass
    pass

def sing():
    for item in range(1, 5):
        print("唱歌...")
        time.sleep(0.2)
        pass
    pass


if __name__ == "__main__":
    # group 进程组,默认是None,一般不会使用
    # target 所需要执行的任务
    # name 进程名,默认是process-1,2,.....
    # args 参数(元组类型)
    dance_process = multiprocessing.Process(target=dance)
    dance_process.start()
    sing()

在这里插入图片描述

import multiprocessing
import time

def dance():
    for item in range(1, 5):
        print("跳舞...")
        time.sleep(0.2)
        pass
    pass

def sing():
    for item in range(1, 5):
        print("唱歌...")
        time.sleep(0.2)
        pass
    pass


if __name__ == "__main__":
    dance_process = multiprocessing.Process(target=dance)
    sing_process = multiprocessing.Process(target=sing)
    dance_process.start()
    sing_process.start()

1.3 获取进程的编号

  • 获取主进程和子进程编号os.getpid()
  • 在子进程内获取他的父进程编号os.getppid()
  • 通过进程编号停止进程os.kill(process_id, 9)
import multiprocessing
import time
import os

def dance():
    dance_process_id = os.getpid()
    print("dance进程编号: ", dance_process_id, multiprocessing.current_process)
    dance_process_parent_id = os.getppid

推荐阅读