当运行到协程 await 语句时,当前线程处于一种什么样的状态?

查看 15|回复 0
作者:James369   
最近学习协程很困惑。以下是 swift 代码,还是没大明白协程的工作过程:
func fetchData() async -> String {
    print("Start fetching data")
   
    // 模拟异步操作,使用 Task.sleep 等待 2 秒钟
    await Task.sleep(2_000_000_000)
   
    print("Data fetching complete")
    return "Data"
}
func processData() async {
    print("Start processing data")
   
    let data = await fetchData() // 等待 fetchData() 异步操作的完成
   
    print("Data processing complete. Received: \(data)")
}
print("Before calling processData")
Task {
    await processData() // 调用异步函数 processData()
}
print("After calling processData")
疑问:
[ol]
  • 协程本质是实现了串行还是并行运行?
  • 当运行到协程 await 语句时,当前线程是挂起状态吗。(按照资料上说,协程不会阻塞当前线程)
  • 这个 Task 是否就是开启一个新的线程执行?
    [/ol]
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部