python - 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()
解决方案
如果要启动第一个线程,等待 3 秒,然后启动第二个,只需将 time.sleep() 放在t1.start()
和之间t2.start()
。
如果要启动第一个线程,请等待它完成(在第一个线程中暂停 3 秒),然后启动第二个线程,在andt1.join()
之间放置一个,等待第一个线程结束后再启动第二个。t1.start()
t2.start()
推荐阅读
- php - PHP将多维数组的数组键附加到一维数组
- reactjs - ReactJS 中的“任务状态”框 - 找不到合适的设计组件
- javascript - 为什么 @Input() 更新数据 Angular 8 时不会触发 ngOnChanges()?
- react-native - TouchableOpacity onpress 不适用于导航
- reactjs - React - 使用 useRef 触发表单提交
- browser - 是否可以将 wasm 二进制文件捆绑到 JavaScript 包中以避免第二次请求?
- javascript - 如何使 d-flex 项目在反应中可滚动和可聚焦?
- python - 按字典的值对列表字典进行排序?TypeError:字符串索引必须是整数
- sql - 子查询带来与自身查询不同的总数
- vue.js - 以编程方式呈现命名的 scopedSlot