python 进程占用 100% CPU

2024-04-29

我正在尝试运行 python 应用程序并根据指定的时间间隔执行操作。下面的代码持续消耗 100% 的 CPU。

def action_print():

    print "hello there"

interval = 5
next_run = 0

while True:

    while next_run > time.time():
        pass

    next_run = time.time() + interval

    action_print()

我想避免让进程进入睡眠状态,因为在不同的时间间隔会执行更多的操作。

请指教


如果您知道下次运行的时间,您可以简单地使用time.sleep http://docs.python.org/library/time.html#time.sleep:

import time
interval = 5
next_run = 0
while True:
   time.sleep(max(0, next_run - time.time()))

   next_run = time.time() + interval
   action_print()

如果您希望其他线程能够中断您,请使用event http://docs.python.org/library/threading.html#event-objects像这样:

import time,threading
interval = 5
next_run = 0
interruptEvent = threading.Event()
while True:
   interruptEvent.wait(max(0, next_run - time.time()))
   interruptEvent.clear()

   next_run = time.time() + interval
   action_print()

另一个线程现在可以调用interruptEvent.set()唤醒你的。

在许多情况下,您还需要使用Lock http://docs.python.org/library/threading.html#lock-objects避免竞争条件 http://en.wikipedia.org/wiki/Race_condition关于共享数据。确保在锁定时清除事件。

你还应该知道,在cpython下,只有一个线程可以执行Python代码。因此,如果您的程序在多个线程上受 CPU 限制,并且您使用的是 cpython 或 pypy,则应该替换threading with multiprocessing http://docs.python.org/library/multiprocessing.html.

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

python 进程占用 100% CPU 的相关文章

  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 为什么一旦我离开内置的运行服务器,Django 就无法找到我的管理媒体文件?

    当我使用内置的简单服务器时 一切正常 管理界面很漂亮 python manage py runserver 但是 当我尝试使用 wsgi 服务器为我的应用程序提供服务时django core handlers wsgi WSGIHandle
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?

    我已经听到很多关于PyPy http en wikipedia org wiki PyPy项目 他们声称它比现有技术快 6 3 倍CPython http en wikipedia org wiki CPython口译员开启他们的网站 ht
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp

随机推荐

  • 如何平滑过渡 CSS 背景图片?

    主要的解决方案是 只需抛出一个加载屏幕 直到页面加载完毕 但我的目标是构建能够快速呈现基础知识的页面 无需加载屏幕 然后在图像和精美功能准备就绪时进行转换 所以我会等到它加载完毕 然后淡入 或者我会加载一个非常低分辨率的版本 然后在准备好时
  • PyCharm 未使用环境变量进行更新

    当我使用vim更新我的环境变量 在 bashrc PyCharm 不会立即获取更新 我必须关闭程序 源 bashrc再次 然后重新打开 PyCharm 有没有办法让 PyC harm 自动获取更改 或无需关闭 当任何进程创建时 它都会从其父
  • 获取自分离父分支以来的提交日志,包括父分支的最新提交

    我正在尝试创建一个快速的 bash 函数 该函数返回 oneline自当前分支从其父分支分支以来的每次提交的日志 以及包括先前提交的行 这是我到目前为止所拥有的 stolen from another Stack Overflow ques
  • 如何获取一维标量数组作为学说 dql 查询结果?

    我想从拍卖表的 id 列中获取一组值 如果这是一个原始 SQL 我会写 SELECT id FROM auction 但是当我在 Doctrine 中执行此操作并执行时 em gt createQuery SELECT a id FROM
  • 为什么 Java Swing html 字体渲染看起来这么糟糕?

    为了显示具有多种样式的复杂多行标签 我使用了 Swing 的 html 渲染功能 但最终得到了非常糟糕的字体渲染 我尝试明确设置字体系列 infoLabel setText span style font family Tahoma My
  • Json.NET:将嵌套数组反序列化为强类型对象

    我正在编写客户端应用程序 它应该处理服务器响应 响应采用 JSON 格式 我决定使用 Json NET 来反序列化它们 我无法简化或修改这些响应 在服务器端 此特定 JSON 响应的特殊困难在于不同的对象类型位于同一数组中 哈希值和文件数组
  • Numpy 提取网格数据的子集

    在我的应用程序中 我有一个从 meshgrid 命令获得的值矩阵及其坐标 经度 纬度 我想根据经度和纬度限制提取该矩阵的特定子区域 我已经尝试过这个解决方案 但它不起作用 我需要三个矩阵作为输出 一个用于数据 另外两个用于网格 Lons L
  • 应用程序突然崩溃 - 致命执行引擎错误 (7A0BC59E) (80131506)

    完全随机 我们的应用程序突然在其生产环境中崩溃 该应用程序在 Windows XP 和 net Framework 3 5 sp1 上运行 在应用程序中 我们提供 WCF 服务并使用串行端口 当应用程序崩溃时 它会在应用程序日志中留下消息
  • React Native 中的平台特定组件

    我很确定这很简单 但我不太明白如何将它们结合在一起 目前我的应用程序在 iOS 中运行良好 但我使用了一些与 Android 不兼容的控件
  • java中的引用传递[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我是java新手 我尝试搜索很多我的
  • OpenCV 的 findHomography 产生无意义的结果

    我正在制作一个程序 使用 OpenCV 2 43 中的 ORB 跟踪功能 我遵循并使用了建议从这里 https stackoverflow com questions 9919505 how can i extract fast featu
  • 如何解决发布 .NET Core 时出现的 PFX 签名不支持错误

    我一直在尝试使用 PFX 文件对程序集进行签名 一切正常 我在 Visual Studio 中访问了属性 签名 但每当我运行点网发布命令 我收到此错误 C Program Files dotnet sdk 2 1 201 Microsoft
  • 如何查看合并到合并提交中的提交?

    If my feature branch被合并到my main branch 我怎样才能看到合并了哪些提交my feature branch git log abc123 abc123显示合并到合并提交中的提交abc123 创建一个git
  • 在 Java Web 应用程序中处理 X-FORWARDED-PROTO 标头

    任何人都可以指导我与X 转发 原型 https developer mozilla org en US docs Web HTTP Headers X Forwarded Proto部署到 Apache Tomcat 的 Java Web
  • React Redux 在 Modal 中的使用

    我正在 React 中学习 Redux 我在 React 中使用 Redux 进行 Modal 开发 我的代码如下 render return
  • 如何解析kotlin代码?

    我需要分析 kotlin 文件代码 以检测关键字 data 和 问题是我没有找到任何像 JavaParser 这样的库 我不需要强大的工具 只需要能够返回行数的东西 任何想法 我使用antlr4来做到这一点 我创建了一个开源库 https
  • hibernate - Postgres - 目标列表最多可以有 1664 个条目

    我们正在使用 hibernate postgres 8 3x 我们的实体是通过急切获取进行多对一映射的 我们与多对一映射有多个关联 当我们向任何其他现有实体添加新列时 我们收到以下错误 目标列表最多可以有 1664 个条目 我搜索了互联网
  • 有没有办法在 Gmail 插件中显示模式对话框

    有没有办法在 Gmail 插件中显示模式对话框 类似于电子表格插件 SpreadsheetApp getUi showModalDialog html title 看起来不行 向用户显示一些 UI 的唯一方法是使用Cards https d
  • R: eval(parse()) 错误消息:即使在解析中指定了“text=”也无法打开文件

    我多次对国家 地区列表进行分析 在每次迭代期间 结果应添加到向量中 下面我展示了一个简化的示例 仅针对一个国家 地区 没有循环 尽管我彻底寻找解决方案 但我找不到答案 this is my simplified country vector
  • python 进程占用 100% CPU

    我正在尝试运行 python 应用程序并根据指定的时间间隔执行操作 下面的代码持续消耗 100 的 CPU def action print print hello there interval 5 next run 0 while Tru