美文网首页
进程的常见功能

进程的常见功能

作者: 测试探索 | 来源:发表于2022-01-30 20:29 被阅读0次
一:常见功能
第一部分

1.p.start(),当前进程准备就绪,等待被CPU调度(工作单元其实是进程中的线程)。
2.p.join(),等待当前进程的任务执行完毕后再向下继续执行

import time
import multiprocessing

def task(arg):
    print("执行中。。。")
    time.sleep(2)

if __name__ == '__main__':
    multiprocessing.set_start_method("spawn")
    p =  multiprocessing.Process(target = task ,args = (2,))
    p.start()
    p.join()

    print("主进程等子进程执行完毕再结束")
image.png
第二部分:守护进程

1.p.daemon = 布尔值,守护进程(必须放在start之前)
p.daemon = True ,设置为守护进程,主进程执行完毕后,子进程也自动关闭

import time
import multiprocessing

def task(arg):
    time.sleep(2)
    print("执行中。。。")


if __name__ == '__main__':
    multiprocessing.set_start_method("spawn")
    p =  multiprocessing.Process(target = task ,args = (2,))
    p.daemon = True
    p.start()
    print("主进程不等子进程执行完毕直接结束,所以task方法里的执行中不会被打印")
image.png

p.daemon = False,设置为非守护进程,主进程等待子进程,子进程执行完毕后,主进程才结束。

import time
import multiprocessing

def task(arg):
    time.sleep(2)
    print("执行中。。。")


if __name__ == '__main__':
    multiprocessing.set_start_method("spawn")
    p =  multiprocessing.Process(target = task ,args = (2,))
    p.daemon = False
    p.start()
    print("主进程等子进程执行完毕后,主进程才结束")

二:进程名称的设置与获取

进程名称的获取
import time
import multiprocessing

def task(arg):
    time.sleep(2)
    print("当前进程的名称:",multiprocessing.current_process().name)


if __name__ == '__main__':
    multiprocessing.set_start_method("spawn")
    p =  multiprocessing.Process(target = task ,args = (2,))
    p.name = "哈哈哈哈哈"
    p.start()
    print("继续执行")
image.png
子进程与父进程的pid获取
import time
import multiprocessing
import os
def task(arg):
    print("子进程的pid:",os.getpid())
    print("父进程的pid:",os.getppid())
    time.sleep(2)
    print("当前进程的名称:",multiprocessing.current_process().name)


if __name__ == '__main__':
    print("主进程的pid:",os.getpid())
    multiprocessing.set_start_method("spawn")
    p =  multiprocessing.Process(target = task ,args = ("xxx",))
    p.name = "哈哈哈哈哈"
    p.start()
    print("继续执行")
image.png
在子进程里,打印该子进程的线程数
import os
import time
import threading
import multiprocessing

def func():
    time.sleep(3)


def task(arg):
    for i in range(10):
        t  = threading.Thread(target = func)
        t.start()

    print("子进程的pid:",os.getpid())
    print("父进程的pid:",os.getppid())
    print("线程个数:",len(threading.enumerate()))
    time.sleep(2)
    print("当前进程的名称:",multiprocessing.current_process().name)


if __name__ == '__main__':
    print("主进程的pid:",os.getpid())
    multiprocessing.set_start_method("spawn")
    p =  multiprocessing.Process(target = task ,args = ("xxx",))
    p.name = "哈哈哈哈哈"
    p.start()
    print("继续执行")
image.png

三:自定义进程类

image.png

四:CPU个数,程序一般创建多个进程

multiprocessing.cpu_count()

相关文章

  • 进程的常见功能

    一:常见功能 第一部分 1.p.start(),当前进程准备就绪,等待被CPU调度(工作单元其实是进程中的线程)。...

  • rsync服务企业应用

    守护进程服务企业应用: 守护进程多模块功能配置 守护进程的排除功能实践 守护进程来创建备份目录 守护进程的访问控制...

  • Linux进程管理与计划任务

    进程相关概念 内核的功能 进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等。 process 进程,正...

  • 加密与解密笔记

    第一章 常见DLL及其功能 主要的三大动态链接库 Kernal 操作系统核心功能服务(进程与线程控制、内存管理、文...

  • url解析流程

    浏览器进程主要负责用户交互、子进程管理和文件存储等功能 网络进程是面向渲染进程和浏览器进程等提供网络下载功能 渲染...

  • 从输入 URL 到页面展示发生了什么?

    浏览器进程主要负责用户交互、子进程管理和文件储存等功能。网络进程是面向渲染进程和浏览器进程等提供网络下载功能。渲染...

  • 操作系统练习题

    操作系统常见练习题 1. 进程的常见状态?以及各种状态之间的转换条件? 就绪态:进程已处于准备好运行的状态,即进程...

  • note_13.1_进程

    Linux进程及作业管理 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能 Process:...

  • 4.5、守护进程及信号处理实战

    1、守护进程功能的实现守护进程融入项目,解放终端。相关配置:Daemon = 1;按照守护进程的方式运行守护进程如...

  • 进程、进程和线程对比功能

    进程 什么是进程程序:例如xxx.py这是程序,是一个静态的 进程:一个程序运行起来后,代码+用到的资源 称之为进...

网友评论

      本文标题:进程的常见功能

      本文链接:https://www.haomeiwen.com/subject/fwtckrtx.html