【问题标题】:Leave some code running while executing more让一些代码运行,同时执行更多
【发布时间】:2012-08-01 09:54:57
【问题描述】:

我正在 python 中启动一个循环,在我启动循环后,我希望循环继续执行代码,而循环继续循环(在“背景”中)。

x=True

while x:
  #do some output
  sleep(1)

#ask for input or something
if input()=='something':
  x=False

因此,在该示例中,#do some output 将在要求输入时继续发生。

这在 python 中可能吗?是否有任何变通办法可以实现这一目标?

【问题讨论】:

  • 查看线程和/或多处理模块。
  • 有很多方法可以实现这一点,但正确的选择很大程度上取决于后台执行的工作的性质。您可以查看线程、多处理、某种形式的异步进程或 greenlets 等.....
  • @freakish 使用多处理完成,请随时将其发布为答案
  • @ACarter 你可以接受你自己的答案:)

标签: python loops background execution


【解决方案1】:

据我了解,您想要的是创建一个在后台继续执行某些任务的线程。

http://docs.python.org/library/threading.html

线程是一个中等复杂的问题,所以在这里给你一个秘诀并不重要。我建议您查看文档以了解所涉及的内容。

如果您遇到特定于实施的问题,请更新您的问题或创建一个新问题。

编辑: 我同意蒂姆霍夫曼的评论,正确的解决方案取决于你想要达到的目标。根据我的理解,线程应该适合你,但如果你给我们更多细节,可能会更容易给出更准确的答案。

【讨论】:

    【解决方案2】:

    按照 OP 的希望,我发布了答案。 :) 有多个库可以实现您想要做的事情。最知名的包括:

    它们之间存在细微的差异,但我想你现在不应该担心它。我鼓励你阅读更多关于多处理和线程的信息。 “绿色”线程也是一个有趣的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      相关资源
      最近更新 更多