并发模型-协程模型
并发模型-协程模型 一、介绍 1.1 什么是线程 协程(Coroutine)是一种: 运行在用户态、由程序自身调度的轻量级执行单元。 它不像线程那样由操作系统调度,而是由运行时(Runtime)负责调度。 例如: 操作系统 │ ▼ Worker(线程) │ ┌──┼───────────────┐ │ │ │ ▼ ▼ ▼ 协程1 协程2 协程10000 可以看到: 一个线程 可以运行成千上万个协程 1.2 为什么会出现协程 先看传统线程。 例如: 线程1 ↓ 查询 MySQL ↓ 等待200ms 等待期间: CPU: 空闲 线程: 阻塞 CPU 没有工作。 协程出现以后: 协程1 ↓ 等待 MySQL ↓ 主动让出 CPU ↓ 协程2 开始执行 ↓ 协程3 开始执行 CPU 一直在处理其它任务。 因此: 协程解决的是 IO 等待导致 CPU 空闲的问题。 1.3 协程不是线程 协程永远依附于线程。 没有线程: 协程无法运行。...