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

是否可以在子进程中运行功能而无需线程化或编写单独的文件/脚本。

楚健
2023-03-14
问题内容
import subprocess

def my_function(x):
    return x + 100

output = subprocess.Popen(my_function, 1) #I would like to pass the function object and its arguments
print output 
#desired output: 101

我只找到有关使用单独的脚本打开子流程的文档。有谁知道如何传递函数对象甚至是传递函数代码的简便方法


问题答案:

我认为您正在寻找更类似于多处理模块的内容:

http://docs.python.org/library/multiprocessing.html#the-process-
class

子流程模块用于生成流程并使用其输入/输出执行操作-不适用于运行功能。

这是multiprocessing您的代码的版本:

from multiprocessing import Process, Queue

def my_function(q, x):
    q.put(x + 100)

if __name__ == '__main__':
    queue = Queue()
    p = Process(target=my_function, args=(queue, 1))
    p.start()
    p.join() # this blocks until the process terminates
    result = queue.get()
    print result


 类似资料:
  • 当我调用foo()时,这个方法是否在单独的线程上运行?

  • 我已经安装了cucumber eclipse插件。我已经用空手道编写了我的简单功能文件,当我试图将其作为cucumber测试运行时,我被要求实现缺少的步骤。当我使用专用的运行程序运行同一个功能文件时,它的执行不会出现任何问题。请你帮忙。我正在尝试在不使用专用跑步者的情况下进行这项测试

  • 如果我必须用Java编写一个(非常不专业的编码)点对点聊天客户机,我会在客户机之间启动一个套接字连接,并使其保持活跃,因为消息可以随时到达。我能想象的解决方案是在一个新线程中打开一个套接字连接,并连续运行while循环以保持线程活动,因为只要返回,线程就会死亡。由于某些原因,我无法想象在一个单线程程序中有一个类似的聊天客户端。如果你只有一个线程,你怎么能一直“等待”直到消息到达。这不会阻碍整个程序

  • 问题内容: 我是C ++中静态元编程的迷。我知道Java现在有了泛型。这是否意味着在Java中可以进行静态元编程(即,编译时程序执行)?如果是这样,任何人都可以推荐任何好的资源,以便在其中可以了解更多的信息? 问题答案: 这个问题已经有10多年的历史了,但是我仍然缺少一个答案。这是: 是的 ,但不是 因为 泛型,并且注释与C ++完全相同。 从Java 6开始,我们具有可插入注释处理api。静态元

  • 今天我一直在玩谷歌应用程序脚本,我正在尝试编写一些自定义电子表格函数。我做了一些搜索,但找不到我的问题的答案。 我知道,在谷歌电子表格中,您可以在电子表格的单元格中使用ImportRange,如下所示: 我的问题是,有没有可能在谷歌应用程序脚本中做类似的事情?如果有,怎么做? 我想从另一个电子表格上的工作表(而不是脚本将驻留的电子表格上的工作表)导入一系列单元格。

  • 问题内容: 是否可以使用html5按钮事件运行bat /可执行文件?在IE中,如果我没有记错的话,可以使用Shell对象来实现。 问题答案: 这就是我所做的。我希望在我们的网络上设置HTML页面,这样就不必导航到各个文件夹来安装或升级我们的应用程序。因此,我要做的是在每个人都可以访问的“共享”驱动器上设置一个.bat文件,在该.bat文件中,我有以下代码: HTML代码是: (确保您的斜杠正确无误