【多进程】进程:multiprocessing

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 秒。

posted on   张凌赫_帅  阅读(18)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示