首页 > 系统相关 >【多进程】进程:multiprocessing

【多进程】进程:multiprocessing

时间:2024-12-05 14:54:57浏览次数:4  
标签:__ 函数 参数 进程 multiprocessing target

Python使用multiprocessing实现多进程_python多进程multiprocessing-CSDN博客

使用场景

在计算密集型场景下使用进程来实现,因为进程跳过了全局解释器锁(GIL:确保了任何时候只有一个Python线程在执行Python字节码)实现了对CPU多核的利用,实现真正的并行运行。 而且进程是计算机下的应用实例,有自己独立的执行环境和内存空间。

创建进程

import multiprocessing
 
def worker():
    # 进程执行的逻辑
 
if __name__ == '__main__':
    process = multiprocessing.Process(target=worker)

参数说明:

1. group

  • 类型:通常为 None
  • 说明:该参数用于兼容 threading.Thread,但在 multiprocessing 模块中,它应该始终是 None,因为进程没有组的概念。

2. target

  • 类型:可调用对象(如函数)
  • 说明:这是子进程启动时将要调用的对象。它应该是一个函数或者实现了 __call__ 方法的对象。

3. name

  • 类型:字符串
  • 说明:进程的名称。如果不指定,则默认为 Process-N,其中 N 是一个递增的整数。

4. args

  • 类型:元组
  • 说明:传递给 target 函数的位置参数。这是一个元组,其中的元素将作为 target 函数的参数。

5. kwargs

  • 类型:字典
  • 说明:传递给 target 函数的关键字参数。这是一个字典,其中的键值对将作为 target 函数的关键字参数。

6. daemon

  • 类型:布尔值
  • 说明:设置进程是否为守护进程。如果是默认值 None,则该标志将从创建的进程继承。守护进程在主进程终止时会自动终止,且不能创建自己的新进程。这个参数必须在进程启动(即调用 start() 方法)之前设置。

方法

  • start():启动进程,并调用该子进程中的 obj.run() 方法。
  • run():进程启动时运行的方法,正是它去调用 target 指定的函数。如果子类化 Process 并覆盖了 run() 方法,那么应该在该方法中实现进程的行为。
  • terminate():强制终止进程,不会进行任何清理操作。如果进程创建了子进程,那么这些子进程将成为僵尸进程。使用这个方法需要特别小心。
  • is_alive():如果进程仍然运行,则返回 True
  • join([timeout]):主线程等待子进程终止。timeout 是可选的超时时间。如果指定了 timeout,那么主线程将等待最多 timeout 秒。

标签:__,函数,参数,进程,multiprocessing,target
From: https://www.cnblogs.com/liu-Gray/p/18588602

相关文章

  • 【多进程】multiprocessing.Manager
    multiprocessing.Manager() 是Python multiprocessing 模块中的一个功能,它提供了一个服务器进程,该进程可以创建和管理跨多个Python进程共享的对象。这个管理器使得你可以创建像列表(list)、字典(dict)、锁(Lock)、事件(Event)等可以被多个进程安全访问和修改的对象。使用场景共享数......
  • 进程调度的时机
    硬中断和软中断中断有很多种,但都是程序执行过程中的强制性转移,转移到操作系统内核相应的处理程序除了主动让出CPU外,进程的调度都需要在进程外(内核)进行,这就需要从进程的指令流里切换出来中断处理程序是与进程无关的内核指令流,起到切出进程指令流的作用运行完内核代码后,CPU会检......
  • 进程描述和创建
    进程描述操作系统通过进程控制块PCB来描述进程,对应Linux内核数据结构structtask_struct在Linux3.18.6内核中,定义于include/linux/sched.h#1235pid和tgid标识进程state进程状态stack进程堆栈CONFIG_SMP在多处理器时使用fs文件系统描述tty控制台files进程打开文件的文件描......
  • linux进程调度器之核心函数__schedule()解析
    __schedule()是主调度器的核心函数,其作用是让调度器选择和切换到一个合适进程运行。调度的时机可分为如下3种:a、阻塞操作:互斥量(mutex)、信号量(semaphore)、等待队列(waitqueue)等b、在中断返回前和系统调用返回用户空间时,去检查TIF_NEED_RESCHED标志位以判断是否需要调度1)、内......
  • Linux网络编程——进程、线程同步方式
    线程同步与进程同步方式要注意这里的同步并不是指同时进行的意思,而是按照先后顺序依次进行。首先了解一下同步与互斥的概念:同步:多个进程因为合作产生的直接制约关系,使得进程有一定的先后执行关系;互斥:多个进程在同一时刻只有一个进程能进入临界区。一、进程同步方式进程同......
  • docker环境一个奇怪的问题,容器进程正常运行,但是docker ps -a却找不到容器,也找不到
    一:问题:docker环境一个奇怪的问题,使用容器跑的进程正常提供服务,在服务器上也能看到对应的端口正在监听,但是dockerps-a却找不到容器,也找不到镜像.查看我使用docker容器启动服务的端口正在监听dockerimages找不到对应的镜像dockerps-a找不到任何容器二:排......
  • 【进程】进程间通信
    IPC,全称Inter-ProcessCommunication,即进程间通信,指的是在不同进程之间进行数据交换或同步操作的一种技术。在操作系统中,进程是资源分配和调度的基本单位,每个进程都有自己独立的地址空间和资源,因此进程之间不能直接访问彼此的内存区域。为了实现进程间的数据交换和同步,操作系统提......
  • 终止RMAN进程
    当rman执行过程中,有时需要中止:查一下有多少rman进程--查看rman系统进程号SPIDSELECTsid,spid,client_infoFROMv$processp,v$sessionsWHEREp.addr=s.paddrANDclient_infoLIKE'%rman%';在系统里查看ps-ef|grepbeq#ps-ef|grep391451oracsp39......
  • SpringBoot 构建校园失物招领信息化系统:加速失物招领进程
    2系统开发环境2.1vue技术Vue(读音/vjuː/,类似于view)是一套用于构建用户界面的渐进式JavaScript框架。[5]与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工......
  • 进程、线程、协程的关系
    系统和多个线程的关系:一个系统内可以创建多个进程,一个进程可以类比为一个应用程序,一个进程内可以创建多个线程,协程是Go语言首创,通过在一个线程内代理当前线程的所有系统的调度权,模拟出多个子线程——称作协程,以达到优化效率的目的。线程和协程的关系:协程Coroutine的精髓......