2012-08-01 55 views
0

我在python中启动一个循环,并且在启动循环之后,我希望在循环继续执行时执行代码,而循环保持循环(在“背景”中)。让一些代码在执行时运行更多

x=True 

while x: 
    #do some output 
    sleep(1) 

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

所以在那个例子中,#do some output将继续发生,而输入要求。

这是可能的蟒蛇?是否有任何解决方法可以实现这一目标?

+6

看看线程和/或多处理模块。 – freakish 2012-08-01 09:57:38

+2

有很多方法可以实现这一点,但正确的选择将非常依赖于在后台执行的工作的性质。你可以看看线程,多处理,某种形式的异步处理,或greenlet等..... – 2012-08-01 09:59:58

+2

@freakish使用多处理完成它,随时张贴它作为答案 – ACarter 2012-08-01 10:11:28

回答

0

继OP的愿望之后,我发布了答案。 :)有多个库可以实现你想要做的事情。最知名的包括:

它们之间有细微的差别,但我猜,你不应该在此刻担心。尽管如此,我鼓励你阅读更多关于mutli处理和线程的一般信息。 “绿色”线程也是一个有趣的选择。

3

从我的理解,你想要的是创建一个线程,继续执行一些任务在后台。

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

线程是一个比较复杂的问题,所以给你一个食谱这里将不会达到多少。我建议你看一下文档以了解涉及的内容。

更新您的问题或创建一个新的问题,如果您遇到与实施相关的问题。

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