术语
    阻塞:发出一个请求不能立刻返回响应,要等所有的逻辑全处理完才能返回响应(不可能无限等待则出现超时问题)
    非阻塞:发出一个请求立刻返回应答,不用等处理完所有逻辑(如何得到结果:状态(轮询)、通知、回调)

    同步

    协同步调,按预定的先后次序进行运行。注:不要理解为同时进行,而应指协同、协助、互相配合 是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源

    异步

    彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作

    互斥

    指对于共享的进程系统资源,在各单个线程访问时的排它性。线程互斥可看成特殊的线程同步 是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的

    同步和异步的区别:请求发出后,是否需要等待结果,才能继续执行其他操作。

    同步/异步关注的是消息通知的机制,而阻塞/非阻塞关注的是程序(线程)等待消息通知时的状态。
    同步阻塞:主动等待完成通知且不做其他任务
    同步非阻塞:主动等待完成通知,可做其他任务但需任务切换
    异步阻塞:完成后被动告知但不做其他任务
    异步非阻塞:完成后被动告知(仅告知状态),继续做其他任务
    同步:主动关注完成标识
    异步:被动告知完成

    并行&串行&并发

    可重入&不可重入函数
    单工&双工

    实现服务器,需要满足什么
    高可用
    高并发
    高拓展

    网络模型
    发展历程
    单进程模型
    多进程模型
    多线程模型
    多进程多线程模型
    Reactor网络模型与Pereactor网络模型

    Socket编程
    socket综合了IP、TCP即传输层和网络层的系统调用接口
    socket
    bind
    listen
    accept
    connect
    read/write
    sendto/recvfrom
    close
    与TCP三次握手联系起来
    socket位于OSI模型哪一层
    sock地址
    sockaddr 基础核心,所有api中的地址均围绕它展开
    sockaddr_in
    sockaddr_in6
    sockaddr_storage: IPv4和IPv6
    工具
    获取端口号
    获取IP地址(二进制、点分十进制字符串,如何转换)
    获取对端地址、本地地址
    获取域名

    字节序
    大端字节序:网络字节序
    小端字节序:主机字节序
    Redis中用的是小端字节序
    如何检验

    IO多路复用
    select
    api
    select
    poll
    与select类似
    api
    poll
    epoll
    将捕获就绪事件与?两步分开了
    api
    epoll_create
    epoll_wait
    epoll_ctl
    ET和LT模式

    代码实现

    三者有什么联系和区别

    多进程
    fork
    exec
    api
    进程间通信
    管道(无名、有名管道)
    无名管道:单工,需要创建2个管道实现相互通信
    api
    pipe =
    进程间有关系:父子进程或兄弟进程
    有名管道:双工
    版本支持?
    sockpair
    信号量
    消息队列
    socket——不同主机间的进程
    进程间互斥同步

    多线程
    posix:
    api
    线程间通信(同步)

    互斥量
    mutex
    条件变量
    cond

    网络事件
    实际上就两类:读和写事件,只是作用于不同的文件描述符,如socket、管道、文件
    IO事件(读写)
    定时事件(定时器)
    连接事件(读事件)
    信号事件