使用python(windows)创建两个子进程

2024-03-29

使用Python编程语言完成以下任务:

创建两个进程(我们称之为 P1 和 P2)。 P1应该打印“我是P1”,P2应该打印“我是P2”。主进程(创建 P1 和 P2 的进程)应该等待它们。然后,P1和P2完成后,主进程应该打印“我是主进程,两个进程完成”。


在 Windows 中,我们没有 fork 系统调用,因此我们可以使用名为 multiprocessing 的 python 模块:

from multiprocessing import Process, Lock
import time
import os
def f(lock,id,sleepTime):
    lock.acquire()
    print "I'm P"+str(id)+" Process ID: "+str(os.getpid())
    lock.release()
    time.sleep(sleepTime)   #sleeps for some time

if __name__ == '__main__':
    print "Main Process ID: "+str(os.getpid())
    lock=Lock()
    p1=Process(target=f, args=(lock,1,3,))   #P1 sleeps for 3 seconds
    p2=Process(target=f, args=(lock,2,5,))   #P2 sleeps for 5 seconds
    start=time.time()
    p1.start()
    p2.start()
    p1.join()
    p2.join()
    end=time.time()
    print "I am the main process, the two processes are done"
    print "Time taken:- "+str(end-start)+"secs"   #MainProcess terminates at approx ~ 5 secs.

The processes as captured in task manager:- P1,P2 and Main Process The code output was:-

Main Process ID: 9804
I'm P1 Process ID: 6088
I'm P2 Process ID: 4656                                                          
I am the main process, the two processes are done
Time taken:- 5.15300011635secs

希望有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用python(windows)创建两个子进程 的相关文章

  • 从字典的元素创建 Pandas 数据框

    我正在尝试从字典创建一个 pandas 数据框 字典设置为 nvalues y1 1 2 3 4 y2 5 6 7 8 y3 a b c d 我希望数据框仅包含 y1 and y2 到目前为止我可以使用 df pd DataFrame fr
  • 如何使用 python 的 http.client 准确读取一个响应块?

    Using http client在 Python 3 3 或任何其他内置 python HTTP 客户端库 中 如何一次读取一个分块 HTTP 响应一个 HTTP 块 我正在扩展现有的测试装置 使用 python 编写 http clie
  • 如何在python中附加两个字节?

    说你有b x04 and b x00 你如何将它们组合起来b x0400 使用Python 3 gt gt gt a b x04 gt gt gt b b x00 gt gt gt a b b x04 x00
  • 使用 Python 3 动态插入到 sqlite

    我想使用 sqlite 写入多个表 但我不想提前手动指定查询 有数十种可能的排列 例如 def insert sqlite tablename data list global dbc dbc execute insert into tab
  • 检查 python 中命令行参数的数量

    我是蟒蛇新手 还是把脚弄湿了 我正在尝试做这样的事情 import sys if len sys argv lt 3 or lt len sys argv gt 3 print This script will compare two fi
  • 从 pyspark.sql 中的列表创建数据框

    我完全陷入了有线的境地 现在我有一个清单li li example data map lambda x get labeled prediction w x collect print li type li 输出就像 0 0 59 0 0
  • 为什么第二个 request.session cookies 返回空?

    我想使用 requests Session post 登录网站 但是当我已经登录主页 然后进入帐户页面时 看来cookies还没有保存 因为cookies是空的 而且我无法进入正确的帐户页面 import requests from bs4
  • 如何获取numpy.random.choice的索引? - Python

    是否可以修改 numpy random choice 函数以使其返回所选元素的索引 基本上 我想创建一个列表并随机选择元素而不进行替换 import numpy as np gt gt gt a 1 4 1 3 3 2 1 4 gt gt
  • numpy:高效执行数组的复杂重塑

    我正在将供应商提供的大型二进制数组读入 2D numpy 数组 tempfid M N load data data numpy fromfile file dirname fid dtype numpy dtype i4 convert
  • 将 pandas 剪切操作转换为常规字符串

    我明白了 pandas cut 操作的输出 0 0 20 1 0 20 2 0 20 3 0 20 4 0 20 5 0 20 6 0 20 7 0 20 8 0 20 9 0 20 如何将 0 20 转换为 0 20 我正在这样做 str
  • 使用 Windows 批处理文件在文本文件中添加新行

    我有一个文本文件 其中有 200 多行 我只想在第 4 行之前添加一个新行 我使用的是 Windows XP 输入前的示例文本文件 header 1 header 2 header 3 details 1 details 2 输出后 hea
  • NumPy 相当于 Keras 函数 utils.to_categorical

    我有一个使用 Keras 进行机器学习的 Python 脚本 我正在构建 X 和 Y 它们分别是特征和标签 标签的构建方式如下 def main depth 10 nclass 101 skip True output True video
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • App Engine 实体到字典

    将 google app engine 实体 在 python 中 复制到字典对象的好方法是什么 我正在使用 db Expando 对象 所有属性均为扩展属性 Thanks 有一个名为foo尝试 foo dict
  • 检索 geodjango 多边形对象的边界框

    如何在 geodjango 中获取 MultiPolygon 对象的边界框 在 API 中找不到任何内容http geodjango org docs geos html http geodjango org docs geos html
  • 使用 selenium 和 python 来提取 javascript 生成的 HTML?萤火虫?

    这里是Python新手 我遇到的是数据收集问题 我在这个网站上 当我用 Firebug 检查我想要的元素时 它显示了包含我需要的信息的源 然而常规源代码 没有 Firebug 不会给我这个信息 这意味着我也无法通过正常的 selenium
  • 仅允许正小数

    在我的 Django 模型中 我创建了一个如下所示的小数字段 price models DecimalField u Price decimal places 2 max digits 12 显然 价格为负或零是没有意义的 有没有办法将小数
  • 在 numpy 中连接维度

    我有x 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 2 3 I want 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 6 也就是说 我想连接中间维度的所有项目 在这种特殊情况下我可以得到这
  • 寻找完美的正方形

    我有这个Python代码 def sqrt x ans 0 if x gt 0 while ans ans lt x ans ans 1 if ans ans x print x is not a perfect square return
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a

随机推荐

  • 现代 x86 CPU 使用什么缓存一致性解决方案?

    我对缓存一致性系统在现代多核 CPU 中的功能有些困惑 我已经看到基于侦听的协议 例如基于 MESIF MOESI 侦听的协议 已在 Intel 和 AMD 处理器中使用 另一方面 基于目录的协议对于多核来说似乎更加高效 因为它们不广播而是
  • Objective-C va_list 和选择器

    是否可以使用 selector and performSelector 或类似 使用变量参数列表的方法 我正在编写一个可以分配委托来覆盖默认行为的类 在存在委托选择方法的情况下 对该类的实例进行的调用将被转发到相同的相应委托方法 其中一些方
  • javax.security.auth.login.LoginException:安全异常

    我正在尝试使用 GlassFish v3 1 2 和 JSF 2 1 以及 primeFaces 3 4 2 设置容器管理的安全性 值 HexValue 与数据库匹配 但出现以下异常 我尝试了 Base64 编码器 但结果相同 计算出的值和
  • 程序启动时随机键入后,main.m 第 14 行中的 EXE BAD ACCESS 出现错误?

    当我在 Xcode 4 1 和 iOS SDK 4 3 中的全新基于视图的应用程序项目中通过键盘随机键入时 出现了这个奇怪的崩溃 EXE BAD ACCESS 错误 当我创建基于视图的应用程序项目后按运行时 出现一个空白屏幕 当我开始按键盘
  • 为什么数组的类型推导优先考虑指向第一个的指针而不是对数组的引用?

    int v 1 auto p1 v auto p2 v auto p3 v p1属于类型int 同样适用于p3 特别是在这个微不足道的样本中 我发现p2 int 1 更有用 因为它固有的数组语义 例如我可以申请sizeof on p2给予与
  • Eclipse Google -App -Engine“不会增强”

    第一次日食 无法摆脱这个错误 已经尝试了谷歌上所有建议的修复方法 持久类 com blahb blahblah master UserToken 类似乎没有得到增强 您可能需要重新运行增强器并检查输出中的错误 数据库中没有表 但操作需要它
  • 如何在引导日期选择器中更改日期格式(dd-mmm-yyyy)

    Script Textbox
  • 导出导入的模块

    我有两个 javascript 模块 如下所示 inner mod js export function myFunc mod js import as inner from inner mod 我想出口myFunc from mod js
  • Typescript 用循环动态创建数组

    我正在创建一个模拟类 用于为我的 Angular2 TypeScript 项目生成示例数据 我仍然是编程初学者 并且对有关 TypeScript 的可用信息感到困惑 我的问题 我想创建 100 个项目并将它们保存在一个数组中 这 100 个
  • 如何创建表单类的新实例,然后将其作为 acDialog 框打开(暂停其他代码)?

    Problem 我有一个复杂的搜索表单 需要多次 同时 打开 以允许用户同时进行多个搜索 我发现可以使用以下命令打开表单的实例 因为它是一个类 Option Compare Database Option Explicit Array to
  • Plotly R - 错误“`line.width`当前不支持多个值。”

    当我运行以下命令时 interactive plot lt plot ly data vep wes aff rare summary x n y mean af type scatter mode markers hoverinfo te
  • 为什么 Android 不使用更多的枚举?

    我开始非常喜欢在代码中使用 C 和 Java 枚举 原因如下 它们比整数 字符串或布尔标志集更加类型安全 它们会产生更具可读性的代码 将枚举设置为无效值比 int 或字符串更困难 它们可以轻松发现变量或参数的允许值 我读到的所有内容都表明它
  • 分支/更改未合并,尽管 Gerrit 声称,它是

    每次我都看到merged关于我在 Gerrit 中的变化的状态 我确实git pull origin 我可以清楚地看到 我的更改 分支实际上尚未合并到 master 中 请检查我的 Gerrit 工作流程并告诉我 我做错了什么或缺少什么 在
  • 用于清除 Git Bash 屏幕(包括输出缓冲区)的命令

    Git 中是否有任何命令可以清除屏幕 例如在window命令行中执行了很多代码后 如果输入cls 那么它会清除之前的所有代码 所以我想要 Git 中相同类型的功能 所以任何人都可以告诉我命令名称 实际上你正在寻找一个Unix用户环境命令 c
  • Firefox 中 Window.getCompulatedStyle 未实现接口 Element 错误

    我想将一些数据附加到 HTML 元素 因此我使用了以下代码 bookListDiv append data HTMLString 一切都正常 但是我想在显示此元素时添加淡入动画 因此我将其修改为 data HTMLString hide a
  • 是否可以对任何文本分类应用 PCA?

    我正在尝试用 python 进行分类 我正在对网页使用朴素贝叶斯多项式NB分类器 将数据从网络检索到文本 稍后我对此文本进行分类 网络分类 现在 我尝试对这些数据应用 PCA 但 python 给出了一些错误 我的朴素贝叶斯分类代码 fro
  • Spark 选择 RDD 中的最高值

    原始数据集是 numbersofrating title avg rating newRDD 3 monster 4 4 minions 3D 5 我想在newRDD中选择前N个avg ratings 我使用以下代码 它有一个错误 sele
  • 模拟对象返回带有 Moq 的模拟列表

    我正在尝试测试以下代码 public void CleanUp List
  • 直接读取程序计数器

    Intel CPU 上的程序计数器可以在内核模式或其他模式下直接读取 即没有 技巧 吗 不 EIP IP 无法直接访问 但在位置相关代码中 它是链接时间常量 因此您可以使用附近 或远处 的符号作为立即数 mov eax nearby lab
  • 使用python(windows)创建两个子进程

    使用Python编程语言完成以下任务 创建两个进程 我们称之为 P1 和 P2 P1应该打印 我是P1 P2应该打印 我是P2 主进程 创建 P1 和 P2 的进程 应该等待它们 然后 P1和P2完成后 主进程应该打印 我是主进程 两个进程