- 一开始大家想要同一时间执行那么三五个程序,大家能一块跑一跑。特别是UI什么的,别一上计算量比较大的玩意就跟死机一样。于是就有了并发,从程序员的角度可以看成是多个独立的逻辑流。内部可以是多cpu并行,也可以是单cpu时间分片,能快速的切换逻辑流,看起来像是大家一块跑的就行。
- 但是一块跑就有问题了。我计算到一半,刚把多次方程解到最后一步,你突然插进来,我的中间状态咋办,我用来储存的内存被你覆盖了咋办?所以跑在一个cpu里面的并发都需要处理上下文切换的问题。进程就是这样抽象出来个一个概念,搭配虚拟内存、进程表之类的东西,用来管理独立的程序运行、切换。
- 后来一电脑上有了好几个cpu,好咧,大家都别闲着,一人跑一进程。就是所谓的并行。
- 因为程序的使用涉及大量的计算机资源配置,把这活随意的交给用户程序,非常容易让整个系统分分钟被搞跪。所以核心的操作需要陷入内
Lua 的协程 为什么会出现?
最新推荐文章于 2024-02-09 13:37:47 发布
Lua 的协程是为了实现并发而设计的轻量级线程,解决了上下文切换带来的性能问题。当遇到I/O阻塞时,协程允许程序在不涉及昂贵的进程或线程切换的情况下,继续执行其他逻辑,提高了程序的响应速度和资源利用率。协程在单CPU系统中通过时间片轮转实现并发,并在多CPU系统中与并行结合,提供更高效的计算能力。
摘要由CSDN通过智能技术生成