zoukankan      html  css  js  c++  java
  • 2021.08.04笔记

    epoll水平触发边缘触发

    水平触发LT:可以理解为一直就绪,跟键盘一直按着一样,一直按着一个键就会一直输出该键的键值,LT模式只要是缓冲区没有满就会一直写,只要是缓冲区不为空就会一直读

    边缘触发ET:可理解为单次触发,接收到数据只读一次,缓冲区里有数据,就写一次。

    LT的处理过程:
    . accept一个连接,添加到epoll中监听EPOLLIN事件
    . 当EPOLLIN事件到达时,read fd中的数据并处理
    . 当需要写出数据时,把数据write到fd中;如果数据较大,无法一次性写出,那么在epoll中监听EPOLLOUT事件
    . 当EPOLLOUT事件到达时,继续把数据write到fd中;如果数据写出完毕,那么在epoll中关闭EPOLLOUT事件

    ET的处理过程:
    . accept一个一个连接,添加到epoll中监听EPOLLIN|EPOLLOUT事件
    . 当EPOLLIN事件到达时,read fd中的数据并处理,read需要一直读,直到返回EAGAIN为止
    . 当需要写出数据时,把数据write到fd中,直到数据全部写完,或者write返回EAGAIN
    . 当EPOLLOUT事件到达时,继续把数据write到fd中,直到数据全部写完,或者write返回EAGAIN

    c++与c区别

    首先面向对象和面向过程的区别就挺大的,首先思路就不一样,c语言支持的是 C89 标准,c++支持C99,c++11,14,15等。很多用法很不一样,

    1、c语言函数参数不行有默认值,但是c++就行,但是参数默认值要在参数列表中最右边

    int func(int a = 1,int b);//这样不行
    int func(int a,int b = 2,int c = 3);//可以
    

    2、c语言变量的声明必须在语句的前面,c++随意在任何地方定义变量。

    3、c语言中空结构体没有占用空间,但是c++有占有一个字节,来区别与别的结构体不同。

    4、c语言不支持函数重载,c++支持

    5、malloc、free和new、delete区别

    6、C语言中作用域只有两个:局部,全局。C++中则是有:局部作用域,类作用域,名字空间作用域三种。

    7、c++面向对象 封装 继承 多态

  • 相关阅读:
    转:神经网络入门
    转:Webkit Flex伸缩盒模型属性备忘
    css3 display:-webkit-box
    display:inline和display:block及html常用标签
    display
    weui flex 分布
    图片、字体、iconfont矢量图
    flex weui列表demo
    方法调用
    C#多线程之Task
  • 原文地址:https://www.cnblogs.com/sunnylinry/p/15100918.html
Copyright © 2011-2022 走看看