python 中的异步等待/非阻塞等待

2023-12-30

我喜欢在等待一段时间后输出字符串的每个字母,以获得打字机效果。

for char in string:
     libtcod.console_print(0,3,3,char)
     time.sleep(50)

但这会阻塞主线程,并且程序会变为非活动状态。
在完成之前您无法再访问它
Note: libtcod http://doryen.eptalys.net/libtcod/ is used


除非有什么东西阻止你这样做,否则就把它放到一个线程中。

import threading
import time

class Typewriter(threading.Thread):
    def __init__(self, your_string):
        threading.Thread.__init__(self)
        self.my_string = your_string

    def run(self):
        for char in self.my_string:
            libtcod.console_print(0,3,3,char)
            time.sleep(50)

# make it type!
typer = Typewriter(your_string)
typer.start()
# wait for it to finish
typer.join()

这将防止睡眠阻塞您的主要功能。

线程的文档可以是在这里找到 http://docs.python.org/2/library/threading.html
一个不错的例子可以是在这里找到 http://www.ibm.com/developerworks/aix/library/au-threadingpython/

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

python 中的异步等待/非阻塞等待 的相关文章

随机推荐

  • 起订量 - 不可覆盖的成员不得在设置/验证表达式中使用

    我是最小起订量的新手 我在嘲笑一个PagingOptions班级 该类如下所示 public class PagingOptions Range 1 99999 ErrorMessage Offset must be greater tha
  • 对新对象使用相同的引用

    在搜索一些松散相关的东西时 我偶然发现了这句话 引用可以比对象更长寿 并可用于引用在同一地址创建的新对象 由此answer https stackoverflow com a 24720107 349594 现在 我一直知道并通过引用进行工
  • 仅在未授予权限时请求 getUserMedia

    我正在创建一个警报 以便在我的网站请求访问用户的麦克风时向用户提供额外的通知 我读过 对于 Chrome 如果该网站通过 HTTPS 提供服务 则不会再次请求用户许可 除非他们删除该权限 但是 我注意到在请求麦克风访问的非 HTTPS 站点
  • 如何打印带有颜色的 R 数据框?

    随着crayon包中 可以创建彩色字符串 library crayon dat lt data frame X c yellow foobar green baz Y cyan qux 这是编码后的dat gt dat X Y 1 033
  • Catalina 中的 NSButton 没有选中状态

    我在 Catalina 上将 NSButton 设置为复选框 并使用以下代码 莫哈韦沙漠没问题 let checkbox NSButton frame NSRect x 0 y 0 width 200 height 32 checkbox
  • 如何通过has_and_belongs_to_many迁移到has_many?

    两个模型之间有一个简单的 has and belongs to many 关系 我们想向该模型添加一些参数 因此我们需要将其更改为 has many through 之类的模型 据我所知 我们需要添加一个 id 列 以及我们想要的任何列 但
  • 我应该使用 eclipse rcp 或 eclipse scout 做什么?

    我计划使用 java 代码开发桌面应用程序 并希望使用任何现成的制作了框架 然后我了解了 eclipse RCP eclipse scout 但我不确定我应该使用哪个框架日食 RCP http wiki eclipse org index
  • Bitbucket 管道不使用缓存进行捆绑安装

    我尝试了命名缓存的各种变体 但似乎没有任何效果 正如我在构建设置中看到的那样 我的缓存正在正确下载 Cache bundler Downloading Cache bundler Downloaded 25 2 MiB in 1 secon
  • ViewModel 中的依赖属性注册

    我发现很多关于 ViewModel 及其属性的讨论 比较了两种方法 INotifyPropertyChanged或通过实施依赖属性 虽然我做了很多 INotifyPropertyChanged 并且它正在工作 但我在实现 DP 方法时遇到了
  • 如何在 Elm 中获取 window.location.href?

    我有一个index html其中包含我的 Elm 应用程序 Elm 应用程序使用各种GETs 到由同一服务器提供服务的 APIindex html 而不是在我的 Elm 代码中硬编码 URLGETs e g url http localho
  • WordPress - 我无法登录 - wp_users 表出现问题

    我无法登录管理仪表板 当我转到 localhost nutri wp admin 时 它会自动将我重定向到 http localhost nutri wp login php redirect to http 3A 2F 2Flocalho
  • 二维点集的包裹

    我有一个二维点列表 例如 x c 4 3 3 5 6 6 4 and y c 5 3 1 0 1 3 5 这些二维点的图是 我想绘制这个点集的包装 如下所示 请注意 边界 包装器 与最近点之间的垂直距离为 2 个单位 注意 我有很多像上面的
  • 在 d3.js 中设置 axis 的 css

    有没有办法在 d3 js 中执行 axis path fill none 我已经在 call d3 svg axis 上尝试过 attr 和 style 但无济于事 我只是在这里做错了什么 我用来创建轴的完整代码如下 create Axis
  • 猫鼬群体和计数

    下面是我的 mongodb 结构 id 111 items productId 123 id 222 items productId 123 productId 456 id 333 items productId 123 productI
  • 从 mht 文件中提取图像和文本

    我有一个包含图像和一些文本的 mht 文件 当我用记事本 打开它时 我看到 xml 然后看到难以辨认的文本 我认为这些文本是图像 有人能告诉我如何使用 java 程序从 mht 文件中提取图像和文本吗 谢谢 它有点旧 但在 Internet
  • 405 - Reactjs 应用程序中的 iis 不允许用于访问此页面的 http 动词

    当我的支付网关将用户重定向到我的反应应用程序时 我收到此错误 相同的代码适用于 firebase 托管 并且不会给出错误 重定向 url 是 POST 请求 我尝试了各种解决方案Asp NET Web API 405 不允许用于访问此页面的
  • 使用 WebDAV 和 C# 读取电子邮件的主题和正文

    我在用this http msdn microsoft com en us library aa123571 28EXCHG 65 29 aspxMicrosoft 的示例 使用 WebDAV 读取电子邮件的主题 我也想阅读正文 但不确定如
  • NHibernate HiLo 生成器参数是什么?

    我看过 Fabio Maulo 的一些文档 其中显示了以下参数
  • 如何为剑道列模板中的元素设置弹出位置的锚点

    我使用 kendo UI 来创建我的 Web UI 我有一个如下所示的列模板 var template
  • python 中的异步等待/非阻塞等待

    我喜欢在等待一段时间后输出字符串的每个字母 以获得打字机效果 for char in string libtcod console print 0 3 3 char time sleep 50 但这会阻塞主线程 并且程序会变为非活动状态 在