任务1需要耗时1小时,任务2只需要耗时10分钟,但是只能等到任务1完成之后才能运行任务2
所以,根据这个情况,优化成了多进程并发能力:
当进程阻塞时,自动切换到下一个进程去运行,等到进程不阻塞时再回去执行...这个多进程切换的逻辑,就是 进程调度器
进程调度器的作用就是在多个进程运行时,切换不同的进程去运行....当进程阻塞时,及时将cpu资源让出给其他进程
但是,进程调度器并不是没有损耗的,当进程切换时,需要保留进程上下文,切换进程虚拟内存空间等等,同时进程创建,销毁都是需要耗费资源的
多进程下,如果是多个cpu...,则可以同时运行多个任务,这个同样需要进程调度器进行调度
多进程->多线程
多进程中,每个进程的内存空间相互独立,有着独立的进程信息,假设你的进程需要获取100个网站的信息,需要怎么做?...P
在程序运行获取到最大数量n之后,运行时就会创建n个P
协程调度流程
我们通过go 关键字创建一个goroutine
新创建的G会优先保存到P队列中,只有满了才会放到全局队列
G只能进入P队列,并且被