首页 > 系统相关 >py01-python之进程

py01-python之进程

时间:2023-11-28 17:22:06浏览次数:26  
标签:__ python process 任务 py01 进程 执行 multiprocessing

一、进程

1、概念

(1)并发:在一段时间内交替去执行多个任务。
例如对于单核cpu处理多任务,操作系统轮流让各个任务交替执行(任务数量大于CPU的核心数)。
(2)并行:在一段时间内真正的同时一起执行多个任务。
例如对于多核cpu处理多任务,操作系统会给cpu的每个内核安排一个执行的任务,多个内核是真正的一起同时执行多个任务。这里需要注意多核cpu是并行的执行多任务,始终有多个任务一起执行(任务数量小于或等于CPU的核心数)。

2、进程:

进程(Process)是资源分配的最小单位,它是操作系统进行资源分配和调度运行的基本单位,通俗理解:一个正在运行的程序就是一个进程例如:正在运行的qq,微信等他们都是一个进程。一个程序运行后至少有一个进程。

(1)进程的创建步骤

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

(2)通过进程类创建进程对象

进程对象 = multiprocessing.Process(target=任务名)

参数说明:target-执行的目标任务名,这里指的是函数名(方法名)name-进程名,一般不用设置、group-进程组,目前只能使用None
(3)进程执行带有参数的任务:args-以元组的方式给执行任务传参(元组方式传参一定要和参数的顺序保持一致)、kwargs-以字典方式给执行任务传参(字典方式传参字典中的key一定要和参数名保持一致)
(4)进程编号的作用:当程序中进程的数量越来越多时,如果没有办法区分主进程和子进程还有不同的子进程,那么就无法进行有效的进程管理,为了方便管理实际上每个进程都是有自己编号的
(5)获取当前进程编号:os.getpid()、获取当前父进程编号:os.getppid)
(6)主进程会等待所有的子进程执行结束再结束。
(7)为了保证子进程能够正常的运行,主进程会等所有的子进程执行完成以后再销毁,设置守护主进程的目的是主进程退出子进程销毁,不让主进程再等待子进程去执行。设置守护主进程方式:子进程对象.daemon = True
--举个例子1:

import multiprocessing


def sing():
    for i in range(3):
        print("唱唱..")


def dance():
    for i in range(3):
        print("跳跳..")


if __name__ == '__main__':
    # 1.通过进程类创建进程对象
    # target:执行的目标任务名,这里指的是函数名(方法名)
    sing_process = multiprocessing.Process(target=sing)
    dance_process = multiprocessing.Process(target=dance)
    # 2.使用进程对象启动进程执行指定任务
    sing_process.start()
    dance_process.start()

--举个例子2:

import multiprocessing
import time


def work():
    for i in range(10):
        print("工作中...")
        time.sleep(0.2)


if __name__ == '__main__':
    # 创建子进程
    work_process = multiprocessing.Process(target=work)
    # 设置守护主进程,主进程退出后子进程直接销毁,不再执行子进程中的代码
    work_process.daemon = True
    work_process.start()
    # 让主进程等待1秒钟
    time.sleep(1)
    print("主进程执行完成了")

标签:__,python,process,任务,py01,进程,执行,multiprocessing
From: https://www.cnblogs.com/wangfengzi/p/17862459.html

相关文章

  • python保留小数点后几位的方法
    一、保留小数点后n位方法一:使用字符串格式化注意:使用字符串格式化后的是字符串格式a=12.3456print("%.3f"%a)#保留小数点后三位print("%.2f"%a)#保留小数点后两位输出12.34612.35方法二:使用round内置函数注意:使用round后的是浮点数格式a=12.3456a1=round(a......
  • Python常用的数据处理函数和模块
    Python还提供了许多其他用于数据处理和转换的内置函数和模块。以下是一些常用的数据处理函数和模块:sortedsorted(iterable,key=func,reverse=False)用于对可迭代对象进行排序。你可以指定一个可选的key函数来自定义排序规则,以及一个可选的reverse参数来控制升序或降序排......
  • python中列表(list)拼接的三种方法
    你可以使用Python中的列表拼接操作来合并两个或多个列表。Python提供了几种方式来实现列表的拼接,包括使用+运算符、extend()方法和列表解析。以下是这些方法的示例:1.使用+运算符:list1=[1,2,3]list2=[4,5,6]concatenated_list=list1+list2print(concate......
  • python 入门
    type(183)显示的是183的数据类型intprint("183")显示183print(183,172)显示183172age=10name=strehdprint("%d %s"%(age,name))显示的是10strehd还有一张传参形式print(f"  {name}11{age}")显示的是strehd11109//2=49%2=19**2=81%m.nd比如%7.2d,限制了数字的宽度和精度......
  • 高级权限介绍以及文件属性进程掩码
    昨天把文件管理的基本权限介绍了,今天介绍高级权限高级权限包含SUIDSGIDSticky权限。1.SUID权限当s这个标志出现在文件所有者的x权限上时,此时就被称为SetUID,简称SUID。作用:SUID权限仅对可执行文件有效执行者对于该可执行文件需要具有x权限在执行过程中,调用者会暂时获......
  • 使用Python中的tarfile :解决Mac和Linux 打包冲突问题
    Python对tar包的操作目的:兼容linux和macOS系统上都能正常打包和解包起初:在macOS上使用命令tar打得包在linux上根本无法解开。原因:https://blog.csdn.net/qq_44214671/article/details/127804905解决办法:python是兼容MacOS和Linux,直接用Python的tarfile操作tar包。https://do......
  • python脚本中调用django环境
    #在脚本中调用djagno服务importosif__name__=='__main__':#1引入django配置文件os.environ.setdefault('DJANGO_SETTINGS_MODULE','day67.settings')#2让djagno启动importdjangodjango.setup()#3使用表模型fromapp01impor......
  • Linux进程管理
    作为一名大学生,最近我在学习Linux操作系统的过程中深入了解了进程管理这一重要的章节。Linux作为一种强大而灵活的操作系统,其进程管理机制为用户提供了广泛的控制和定制能力。在这篇博客文章中,我将分享我在学习Linux进程管理方面所获得的知识。什么是进程?首先,让我们明确什么是......
  • python用户交互
    用户交互:就是在计算机中input/输入数据,计算机print/输出结果如何与用户交互:输入input,输出:print ......
  • 进程管理
    1.初始进程进程是已启动的可执行程序的运行实例,进程有以下组成部分:已分配内存的地址空间;安全属性,包括所有权凭据和特权;程序代码的一个或多个执行线程;进程状态2.查看进程2.1静态查看进程psaux:此命令查看当前目录的进程PID:进程ID。PPID:父进程的进程ID(ParentProcess......