而协程就是类似的情况
协程的本质是函数,但是函数运行时可以中断,然后切到别的协程函数运行,之后还可以恢复运行,但是多个协程还是运行在一个线程里的,所以协程不需要锁,共用同一个线程的资源,而且是同步阻塞的...,epoll实例包含两个结构:
监听列表:底层红黑树,保存所有fd
就绪列表:底层链表,保存就绪的fd
epoll_ctl 会fd 添加到 epoll 实例的监听列表里,同时为 fd 设置一个回调函数,...当 fd 上发生相应事件时,会调用回调函数,将 fd 添加到 epoll 实例的就绪队列上。...,如果接收方缓冲区满了,而发送方还在一直发送的话,会丢包,所以在接收方维护一个窗口,通过报文发送,发送方接收到这个窗口大小后,调整自己的发送窗口,不大于接收窗口大小
拥塞控制只要是避免发送方一直发送数据导致占满整个网络的问题...然后快排的事件复杂度平均为O(n),最坏情况下为O(n2),具体实现在所有排序
说说堆排
对一个数组堆排序的过程可以分为两步,首先建堆,从最后一个非叶子结点开始(n/2-1)进行调整;然后是另一轮调整