召唤多个影子,同时干活。
import threading
import time
def task(name):
print(f"{name} 开始抓取...")
time.sleep(2) # 模拟等待
print(f"{name} 抓取完成!")
# 召唤两个影子
t1 = threading.Thread(target=task, args=("影子1",))
t2 = threading.Thread(target=task, args=("影子2",))
t1.start()
t2.start()
t1.join() # 等待影子回归
t2.join()
print("全部完成!")
更高级的技巧,无需召唤实体影子,仅凭意念切换。
import asyncio
async def fetch(url):
print(f"开始下载 {url}")
await asyncio.sleep(1) # 假装在下载
print(f"下载完成 {url}")
async def main():
# 同时发出三个指令
await asyncio.gather(
fetch("经书1"),
fetch("经书2"),
fetch("经书3")
)
# 启动法阵
# asyncio.run(main())
任务:虽然这里无法真正运行多线程,请写出创建一个线程并启动的代码框架。