python 进程

Posted 大蟒在线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 进程相关的知识,希望对你有一定的参考价值。

进程

进程简介

  • 进程(任务):

    • 在计算机中,其实进程就是一个任务。

    • 在操作系统中,进程是程序执行和资源分配的基本单元。

  • 单核CPU实现多任务

    • 只是将CPU的时间快速的切换和分配到不同的任务上。

    • 主频足够高,切换足够快,人的肉眼无法分辨而已。

  • 多核CPU实现多任务

    • 如果任务的数量不超过CPU的核心数,完全可以实现一个核心只做一个任务。

    • 在操作系统中几乎是不可能的,任务量往往远远大于核心数。

    • 同样采用轮训的方式,轮流执行不同的任务,只是做任务的‘人‘有多个而已。

进程管理

  • 简单示例:

from multiprocessing import Process
import os
import time
def do_some_thing():
     print(子进程开始:, os.getpid())
     print(父进程进程:, os.getppid())
     time.sleep(1)
     print(子进程结束)

if name == main:

# 获取当前进程号
print(主进程, os.getpid())
# 创建一个进程,指定任务(通过函数)
# 参数介绍:
# target:指定任务,一个函数
# name:进程名
# args和kwargs:传递给子进程任务函数的参数
p = Process(target=do_some_thing)
# 当主进程结束后子进程任然在运行,这样的进程叫僵尸进程(有风险)
# 设置:当主进程结束时,结束子进程
p.daemon = True
# 启动进程
p.start()
# 等待主进程结束,在结束主进程,可以指定等待时间
p.join()
# 终止子进程
# p.terminate()
print(主进程结束)
  • 启动子进程,会将父进程所在的文件再加载一次,将会无线循环下去,造成错误。因此,通过将执行的代码放到下面的结构中

 

以上是关于python 进程的主要内容,如果未能解决你的问题,请参考以下文章

[Python3] 043 多线程 简介

java 简单的代码片段,展示如何将javaagent附加到运行JVM进程

代码片段:Shell脚本实现重复执行和多进程

python中的多线程和多进程编程

使用 asyncio 将 bash 作为 Python 的子进程运行,但 bash 提示被延迟

LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段