当前位置: 首页 > 面试题库 >

Python多进程分析

鲜于煜祺
2023-03-14
问题内容

我正在努力弄清楚如何分析一个简单的多进程python脚本

import multiprocessing
import cProfile
import time
def worker(num):
    time.sleep(3)
    print 'Worker:', num

if __name__ == '__main__':
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(i,))
        cProfile.run('p.start()', 'prof%d.prof' %i)

我正在启动5个进程,因此cProfile会生成5个不同的文件。在每个方法的内部,我想看到我的方法’worker’大约需要3秒钟才能运行,但是相反,我只看到了’start’方法中正在发生的事情。

如果有人可以向我解释这一点,我将不胜感激。

更新:基于公认答案的工作示例:

import multiprocessing
import cProfile
import time
def test(num):
    time.sleep(3)
    print 'Worker:', num

def worker(num):
    cProfile.runctx('test(num)', globals(), locals(), 'prof%d.prof' %num)


if __name__ == '__main__':
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(i,))
        p.start()

问题答案:

您正在对流程启动进行概要分析,这就是为什么您只看到所说的情况的原因,p.start()并且p.start()一旦子流程启动就返回。您需要在worker方法内部进行分析,该方法将在子流程中调用。



 类似资料:
  • 本文向大家介绍Python多进程编程技术实例分析,包括了Python多进程编程技术实例分析的使用技巧和注意事项,需要的朋友参考一下 本文以实例形式分析了Python多进程编程技术,有助于进一步Python程序设计技巧。分享给大家供大家参考。具体分析如下: 一般来说,由于Python的线程有些限制,例如多线程不能充分利用多核CPU等问题,因此在Python中我们更倾向使用多进程。但在做不阻塞的异步U

  • 本文向大家介绍Python多进程multiprocessing用法实例分析,包括了Python多进程multiprocessing用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python多进程multiprocessing用法。分享给大家供大家参考,具体如下: mutilprocess简介 像线程一样管理进程,这个是mutilprocess的核心,他与threading很是

  • 本文向大家介绍Python多线程多进程实例对比解析,包括了Python多线程多进程实例对比解析的使用技巧和注意事项,需要的朋友参考一下 多线程适合于多io操作 多进程适合于耗cpu(计算)的操作 可以看到在耗cpu的应用中,多进程明显优于多线程 2.6130592823028564 < 3.905290126800537 下面模拟一个io操作 可以看到 8.00358772277832 < 8.1

  • 问题内容: 我有一个python应用程序,它可以捕获数据集合,并针对该集合中的每个数据执行任务。由于涉及到延迟,因此该任务需要一些时间才能完成。由于这种延迟,我不希望每个数据都随后执行任务,而是希望它们全部并行发生。我应该使用多进程吗?或执行此操作的线程? 我尝试使用线程,但遇到了一些麻烦,通常某些任务实际上不会执行。 问题答案: 如果您确实受到计算的限制,那么使用多处理模块可能是最轻巧的解决方案

  • 本文向大家介绍Python Process多进程实现过程,包括了Python Process多进程实现过程的使用技巧和注意事项,需要的朋友参考一下 进程的概念 程序是没有运行的代码,静态的; 进程是运行起来的程序,进程是一个程序运行起来之后和资源的总称; 程序只有一个,但同一份程序可以有多个进程;例如,电脑上多开QQ; 程序和进程的区别在于有没有资源,进程有资源而程序没有资源,进程是一个资源分配的

  • 问题内容: 我正在学习如何使用Python多处理库。但是,当我浏览一些示例时,最终我在后台运行了许多python进程。 其中的例子看起来象下面这样: 现在,这是我的“ TOP”命令的屏幕截图: 我不知道如何一口气杀死他们。 ps … | grep python ....杀死吗? 我需要添加哪种python代码,以避免再次发生这种悲惨的情况。谢谢! 问题答案: 您需要在工作队列中处理您的进程,该进程