首页 > 系统相关 >python不同系统下多进程启动方式

python不同系统下多进程启动方式

时间:2024-03-07 14:58:24浏览次数:28  
标签:启动 python 创建 subprocess Python 进程 下多 multiprocessing

在Python中,subprocess.Popen用于创建新的进程。这个创建过程是由操作系统的底层机制来执行的,并不是由Python的多进程库multiprocessing决定。subprocess.Popen在内部使用的是操作系统提供的API来启动新进程,并不直接受multiprocessing库的控制。

在Unix-like系统中,subprocess.Popen通常会使用类似于fork或exec这样的系统调用来启动新的进程。没有直接的方式来指定subprocess.Popen应该使用fork还是spawn来创建新进程,因为这是由操作系统层面处理的。Python的subprocess模块对这个过程进行了封装,以提供一个平台无关的接口来创建和管理子进程。

如果使用的是multiprocessing模块来创建进程,可以控制进程的创建方式。在Python 3.4及以后版本,multiprocessing模块支持三种进程启动方法:

fork:父进程使用自己的内存空间作为模板来创建子进程。
spawn:父进程启动一个新的Python解释器进程,然后只加载必要的资源来运行子进程。
forkserver:当程序启动时,创建一个服务器进程。以后每次需要创建一个新进程时,父进程就会连接服务器并请求它创建一个新的子进程。这种方法只在Unix-like系统上可用。

在Python中设置multiprocessing的默认启动方法:

import multiprocessing
multiprocessing.set_start_method('spawn')  # 可以是 'fork', 'spawn', 或 'forkserver'

参考:https://xujinzh.github.io/2023/08/26/python-multiprocessing-freeze-support/index.html

标签:启动,python,创建,subprocess,Python,进程,下多,multiprocessing
From: https://www.cnblogs.com/xxxxxxxxjh/p/18058873

相关文章

  • scalene python cpu&gpu 性能分析工具
    scalene使用一个pythoncpu&gpu性能分析工具,同时也支持内存的分析,同时还提供了基于ai的智能优化推荐包含的一些特性cli支持多种输出格式包含了一个web-gui基于ai的智能提示参考使用安装pipinstallscalene包含的cliusage:scalene......
  • memray python 内存profiler 工具简单试用
    memraypython内存profiler工具,功能还是很强大的,以下是一个简单使用参考使用安装pipinstallmemray支持的cliusage:memray[-h][-v][-V]{run,flamegraph,table,live,tree,parse,summary,stats,transform,attach,detach}... Memo......
  • Python中怎么使用Spark的spark.read.format()函数读取MySQL数据库中的数据
    1.准备工作:安装pyspark库(pipinstallpyspark)2.代码:#导入模块frompyspark.sqlimportSparkSession#创建Spark会话对象spark=SparkSession.builder\.appName("ReadMySQL")\.getOrCreate()#或者写成一行spark=SparkSession.builder.appName("ReadMySQL&qu......
  • CentOS7安装python3详细教程
    1.检查CentOS7自带python环境centos一般自带Python2,先使用python-V来查看python版本建议大家在保留python2的基础上安装一个python3,因为python2和python3还是有一些区别的,同时安装python2和python3的环境,以便不时之需或者对比学习。如果想要删除原有的python环境,可以通过下面......
  • 详解Python魔法函数,__init__,__str__,__del__
    1、简介Python作为一门灵活而强大的编程语言,提供了许多特殊的方法,被称为魔法函数(Magicmethods)。这些魔法函数以双下划线开头和结尾,能够让我们自定义类的行为,使得Python更加灵活和易用。本文将详细介绍Python中的魔法函数,帮助读者理解其作用和用法。1.1、什么是魔法函数?魔法函......
  • Python根据坐标半径生成测试点数据
    一、代码#-*-coding:UTF-8-*-importcsvimportrandomimportmathimportdatetimefromfakerimportFaker#定义语言faker_data=Faker(locale='zh_CN')#获取当前时间current_time=datetime.datetime.now()#格式化时间formatted_time=current_time.strft......
  • Python爬虫学习记录1—Python基础知识
    1.type()函数:用于查看变量的数据类型print(type(a),a)2.input()函数:输入内容用户的交互程序如果没有结束,则需要输入内容注意:input接受的所有数据都是字符串,字符串如果想变成其他数据类型则需要转化3.ifPython用缩进代替判断括号缩进:捆绑同一层级别的代码,简称代码块if单分......
  • Python 实现 AES 加密/解密
    AES,高级加密标准(AdvancedEncryptionStandard)。是用来替代DES,目前比较流行的对称加密算法。与上一篇博文提到过的RSA非对称算法不同,对称加密算法也就是加密和解密用相同的密钥#-*-coding:utf-8-*-#!/usr/bin/envpythonimportosimportsyssys.path.append(os.pa......
  • Java开发者的Python快速进修指南:掌握T检验
    前言T检验是一种用于比较两个独立样本均值差异的统计方法。它通过计算T值和P值来判断样本之间是否存在显著性差异。通常情况下,我们会有两组数据,例如一组实验组和一组对照组。T检验的原假设是两组样本的均值相等,备假设是两组样本的均值不相等。T检验会计算一个T值,表示两组样本均......
  • Python开启线程和线程池的方法
    一.最佳线程数的获取:1、通过用户慢慢递增来进行性能压测,观察QPS(即每秒的响应请求数,也即是最大吞吐能力。),响应时间2、根据公式计算:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间)*cpu数量3、单用户压测,查看CPU的消耗,然后直接乘以百分比,再进行压测,一般这个值......