协程,网络IO

一:什么是协程:

      1, 单线程实现并发

        在应用程序里控制多个任务的切换+保存状态

        优点: 应用程序级别的速度要远远高于操作系统的切换

       缺点: 只有 一个线程,多个任务一旦有一个阻塞没有切,整个线程都阻塞在原地

                  一旦引入协程,就需要检测单线程下所有的IO行为,实现遇到IO就切换,少一个都不行,因为一旦一个任务阻塞住了,整个线程就阻塞住了。其他的任务即便是可以计算,但也无法运行了。

      2,协程的目的

        想要在单线程下实现并发

        并发指的是多个任务看起来是同时运行的

       并发===切换+保存状态

    3,用法

协程,网络IO

协程,网络IO

二:网路IO 模型

       recv/recvfrom:基于网络收数据主要有两种状态:

                   wait date:等待客户端产生数据------》客户端OS-------》网络------》服务端操作系统缓存(耗时)

                  copy date:由本地操作系统缓存中 的数据拷贝到应用程序的内存中

      send:

                只有copy date状态,所以看起来速度很快