【问题标题】:Python Delay on LoopPython 循环延迟
【发布时间】:2015-08-18 06:26:50
【问题描述】:

我需要在 LOOP 上“延迟”操作的替代方法。使用time.sleep(1) 时,整个过程会暂停一秒钟。 print 'something' 应该在每 1 秒后执行 50 次,并且不中断其余进程。

实际代码:

for num in range(50, -1, -1):
    print 'something'
    time.sleep(1)

【问题讨论】:

    标签: python loops time process delay


    【解决方案1】:

    如果我明白你想要什么,你需要使用线程。一个线程将完全按照您的操作:计数和睡眠。另一个线程将是“进程的其余部分”,做它想做的任何事情,而不会被睡眠中断。

    import time
    import threading
    
    def count():
        for num in range(50, -1, -1):
            print 'something'
            time.sleep(1)
    
    count_thread = threading.Thread(target=count)
    count_thread.start()
    
    for num in range(10, -1, -1):
        print 'main'
        time.sleep(5)
    
    count_thread.join()
    

    【讨论】:

    • 对代码有任何想法吗?我试过threads.Timer,但它一直在重复这个动作。
    • 没有解决问题,如果使用类中的函数,则孔类暂停(它们的过程和所有)。例如:def count(): for num in range(50, -1, -1): Class().someFunction(num) time.sleep(1)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2012-09-19
    • 1970-01-01
    相关资源
    最近更新 更多