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

可以从IDLE运行多处理Process类

狄灵均
2023-03-14
问题内容

从文件而不是从IDLE执行时,将运行多处理Process类的基本示例。为什么会这样,可以做到吗?

from multiprocessing import Process

def f(name):
    print('hello', name)

p = Process(target=f, args=('bob',))
p.start()
p.join()

问题答案:

是。该功能的以下工作在f单独的(第三)过程中运行。

from multiprocessing import Process

def f(name):
    print('hello', name)

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

但是,要查看print输出,至少在Windows上,必须从这样的控制台启动IDLE。

C:\Users\Terry>python -m idlelib
hello bob

idlelib.idle在2.x上使用。)原因是IDLE在单独的进程中运行用户代码。当前,IDLE进程和用户代码进程之间的连接是通过套接字进行的。通过多处理完成的派生不会复制或继承套接字连接。当通过图标或资源管理器(在Windows中)启动IDLE时,打印输出无处可去。当使用python(而不是pythonw)从控制台启动时,输出将进入控制台,如上所述。



 类似资料:
  • 这是不得已的问题。我在互联网上搜索了所有可能出错的地方,但似乎没有任何工作。我已经创建了一个自定义注释,它应该生成一个资源文件,这些类如下所示: 和 我当前的项目结构是: 当我运行compile ANT任务时,被成功调用,但是从未被调用。我尝试创建处理器和META-INF文件夹的。jar文件,并将其添加到项目构建路径中,但没有成功。我尝试从命令行使用,但仍然一无所获。也许我误解了应该调用方法的时间

  • 在我们进入流程信息之前,我们需要了解一些事情,例如 - 什么是流程? 流程是执行中的程序。 什么是节目? 程序是一个文件,包含进程的信息以及如何在运行时构建它。 当您开始执行程序时,它将被加载到RAM中并开始执行。 每个进程都使用一个称为进程ID的唯一正整数或简单的PID(进程标识号)来标识。 内核通常将进程ID限制为32767,这是可配置的。 当进程ID达到此限制时,它将再次重置,即系统处理范围

  • 我正在使用NetBeans IDE 8.2和Maven 3.5.0。当NetBeans的一个操作试图下载插件时,它会失败: 下载:https://repo.maven.apache.org/maven2/org/codehaus/mojo/xml-maven-plugin/1.0/xml-maven-plugin-1.0.pom 我在以下位置定义了代理: NetBeans:工具->选项->常规 C

  • 我试图运行从ProcesBuilder的JAVA的关键工具命令,但它失败与以下错误: “非法选项:-genkeypairKey和证书管理工具命令:-certreq生成证书请求-changealias 更改条目的别名-删除删除条目-exportcert导出证书-genkeypair 生成密钥对-genseckey生成密钥-gencert从证书请求生成证书-importcert 导入证书或证书ain-

  • 我是Spring Batch的新手,相信我,那天我读了很多关于它的东西,试图熟悉它的概念。我对、、是如何工作的有点困惑,我想了解一些方面: 当您运行一个作业,并且名称已经在表中时,该作业不会启动。那么,为我的生成新名称的最佳方法是什么? 当我要启动我的作业时,总是生成一个新名称是一种好的做法吗? 因为作业应该计划运行多次。创建一个批处理(作业)的最佳实践是什么,该批处理(作业)计划运行多次而不生成

  • 构造函数包含名称参数、沿路位置参数、车道位置参数,以及根据http://processing.org/learning/eclipse/所需的PApplet参数。该错误始于,但并不是所独有的,因为我试着注释了它,但错误只出现在下一行。我有一种感觉,这个错误与我使用PApplet的方式有关,但我不知道是什么。 编辑:所以我从我认识的人那里得到了输入,显然问题是我没有使用正确的PApplet父级。以下