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

Python:同时执行多项功能

杜高谊
2023-03-14
问题内容

我试图在Python中同时运行两个函数。我已经尝试使用下面的代码,multiprocessing但是当我执行代码时,第二个函数仅在第一个函数完成后才启动。

from multiprocessing import Process
def func1:
     #does something

def func2:
     #does something

if __name__=='__main__':
     p1 = Process(target = func1)
     p1.start()
     p2 = Process(target = func2)
     p2.start()

问题答案:

您做得正确。:)

尝试运行以下愚蠢的代码:

from multiprocessing import Process
import sys

rocket = 0

def func1():
    global rocket
    print 'start func1'
    while rocket < sys.maxint:
        rocket += 1
    print 'end func1'

def func2():
    global rocket
    print 'start func2'
    while rocket < sys.maxint:
        rocket += 1
    print 'end func2'

if __name__=='__main__':
    p1 = Process(target = func1)
    p1.start()
    p2 = Process(target = func2)
    p2.start()

您将看到它先打印“ start func1”,然后再“ start func2”,然后(很长一段时间)后,您将最终看到函数结束。但是它们确实会同时执行。

由于进程需要一段时间才能启动,因此您甚至可能 “ start func1” 之前 看到“ start func2 ”。



 类似资料:
  • 问题内容: 我安装了Jenkins,用于运行在Java,Maven,JMeter等上运行的自动化测试。Builds不会生成部署文件和文件夹,而只会生成测试报告。我是否可以一个接一个地(几乎同时)建立多个作业以并行运行?他们不必完全在同一时间。我只想确保开始第二个构建不会停止/损坏第一个(已运行)构建。谢谢 问题答案: 是的,有可能。 转到您的工作->配置并检查: 如有必要,执行并发构建 文件: 如

  • 问题内容: 我想找出在Linux上用C ++编写的函数的执行时间。我发现了很多与此有关的帖子。我尝试了此链接“ 计时器方法”中提到的所有方法来计算时间。以下是我的函数执行时间的结果: 请帮助我哪种方法读数可靠,因为所有结果的读数都不同。我读到您的操作系统正在不同的任务之间切换,因此不能期望读数非常准确。有没有一种方法可以计算CPU在功能上花费的时间。我听说过使用概要分析工具,但是还没有找到仅用于函

  • 问题内容: 我有一个带有功能的python模块: 有没有办法放入我有评论的命令行解释器?因此,如果我在python中运行以下命令: 我会在下一个评论的范围和上下文中得到我的下一个提示? 问题答案: 插入 届时将进入python调试器 参见此处:http : //docs.python.org/library/pdb.html

  • 问题内容: 我正在尝试为列表中的每个项目创建多个chrome线程,并同时为列表中的每个项目执行功能,但是不知道从哪里开始任何帮助将不胜感激。 代码段 问题答案: 与这里的答案类似,您可以启动多个Chrome浏览器线程。 在这种情况下,定义一个执行Selenium代码的函数 将所有必需的参数添加到函数定义 将参数作为元组传递给您的调用,例如 用与另一个Python包不同的名称保存脚本,例如 最好从命

  • 我试图在springboot上同时运行多个计划任务,但实际上它们运行队列(一个接一个,不是并行的) 这是我简单的服务: 输出: 但是,它应该是这样的: 我做错了什么? 这是我的配置:

  • yield 指令可以很简单的将异步控制流以同步的写法表现出来,但与此同时我们将也会需要同时执行多个任务,我们不能直接这样写: // 错误写法,effects 将按照顺序执行 const users = yield call(fetch, '/users'), repos = yield call(fetch, '/repos') 由于第二个 effect 将会在第一个 call 执行完