协程与线程
Swoole
的协程在底层实现上是单线程的,因此同一时间只有一个协程在工作,协程的执行是串行的。这与线程不同,多个线程会被操作系统调度到多个CPU并行
执行。
一个协程正在运行时,其他协程会停止工作。当前协程执行阻塞IO
操作时会挂起,底层调度器会进入事件循环。当有IO
完成事件时,底层调度器恢复事件对应的协程的执行。
对CPU
多核的利用,仍然依赖于Swoole
引擎的多进程机制。
Swoole
的协程在底层实现上是单线程的,因此同一时间只有一个协程在工作,协程的执行是串行的。这与线程不同,多个线程会被操作系统调度到多个CPU并行
执行。
一个协程正在运行时,其他协程会停止工作。当前协程执行阻塞IO
操作时会挂起,底层调度器会进入事件循环。当有IO
完成事件时,底层调度器恢复事件对应的协程的执行。
对CPU
多核的利用,仍然依赖于Swoole
引擎的多进程机制。
一个协程正在运行时,其他协程会停止工作
意思是一个 cpu 核心上, 只能运行一个协程么? 同一时刻, 线程一个 cpu 核心上也只能运行一个线程呀? 区别是协程会执行完自己让出 cpu, 线程是让 cpu 自动调度么?
对CPU多核的利用,仍然依赖于Swoole引擎的多进程机制
意思是请求分发到不同的 worker 进程上, worker 进程被调度到不同的 cpu 核心, 每个 cpu 核心当前都是可以执行一个协程的, 从而达到并行执行多个协程的效果?
进程绑定内核的吧,怎么会调度到不同cpu
应该就是1楼这个意思