线程与协程的区别

线程是系统级单位,适合并行处理;协程是用户级单位,适合高并发 I/O 处理。
协程依赖于某个线程。

项目 线程(Thread) 协程(Coroutine)
本质 操作系统调度的最小执行单元 用户态调度的轻量级线程
调度者 操作系统(内核) 程序自身(用户空间调度器)
开销 创建/切换较重(需系统调用) 创建/切换极轻(函数调用级别)
栈空间 每个线程拥有独立栈(如1MB) 协程一般只占几KB~几十KB
上下文切换 由 OS 执行,涉及寄存器/堆栈切换 用户程序中保存/恢复上下文
并发性 可并行(利用多核) 单线程并发(并非并行
阻塞 阻塞会影响整个线程 协程可以挂起自己,不影响其他协程
posted @ 2025-07-30 10:09  Charlie-Pang  阅读(19)  评论(0)    收藏  举报