首页 > 解决方案 > Python 多线程:time.sleep() 没有效果

问题描述

我必须在我的 python 多线程代码中添加一个时间延迟。我尝试过使用 time.sleep(),但似乎 time.sleep 没有任何效果。我在这里做错了什么?有没有其他方法可以在线程中添加延迟(没有任何事件驱动逻辑)?下面是代码的行为方式与第一个线程应该运行的方式相同,最后,它有 3 秒的延迟,然后第二个线程启动,最后等待 3 秒。

import threading 
import time
def print_hello():
    print("Hello")
    time.sleep(3)

def print_hi(): 
    print("Hi") 
    time.sleep(3)

t1 = threading.Thread(target=print_hello)  
t2 = threading.Thread(target=print_hi)  

t1.start()
t2.start()

标签: pythonpython-3.xmultithreading

解决方案


如果要启动第一个线程,等待 3 秒,然后启动第二个,只需将 time.sleep() 放在t1.start()和之间t2.start()

如果要启动第一个线程,请等待它完成(在第一个线程中暂停 3 秒),然后启动第二个线程,在andt1.join()之间放置一个,等待第一个线程结束后再启动第二个。t1.start()t2.start()


推荐阅读