假设我有这么一段代码:
import threading
import time
time_list = []
def listen():
last_second = 0
while True:
cur_time = str(int(time.time()))
if not last_second == cur_time:
print('加入 %s' % cur_time)
threading.Thread(target=wait_callback, args=(cur_time,)).start()
last_second = cur_time
time.sleep(0.5)
def wait_callback(cur_time):
"""执行耗时任务"""
time.sleep(2)
print('执行 %s......' % cur_time)
listen()
请问其中的线程能否协程代替?由协程代替执行耗时任务。
这只是一个示例代码,真实环境中使用的双线程队列消费。
能不能用协程代替,要看这个耗时任务具体是什么,这个任务里相应的代码和相关的库也要是协程的写法。例如本来里面可能是一个使用requests库来发送网络请求的,改成协程可以用aiohttp,相应的写法都要改。