【网络编程 && 并发编程 知识点总结】

发布时间 2023-08-23 14:44:33作者: Chimengmeng

【网络编程】

【一】CS与BS架构

  • 什么是 CS 架构
  • 什么是 BS 架构

【二】操作系统基础与网络通信基础

  • 互联网的本质
  • OSI七层协议
  • TCP/IP五层模型

【三】互联网开发架构

【四】socket层

【五】粘包

【六】粘包的解决办法

【1】解决粘包的基础处理方法

【2】解决粘包的进阶方法

【七】认证客户端的链接合法性

【八】socketserver实现并发

【总结】

【1】基于TCP协议的简单套接字(打电话模型)

【2】基于UDP协议的简单套接字

【3】基于 TCP 协议实现服务端执行代码将结果反馈给客户端

  • 粘包问题详解
  • 粘包问题解决办法

【4】socket套接字使用模版

【并发编程】

【一】引入介绍

  • 为什么要有操作系统
  • 什么是操作系统
  • 操作系统和普通软件的区别
  • 操作系统发展史
    • 真空管和穿孔卡片
    • 晶体管和批处理系统
    • 集成电路芯片和多道程序设计

【二】多进程理论

  • 什么是进程
  • 进程与程序的区别
  • 进程的调度问题
  • 并发与并行
  • 同步/异步/阻塞/非阻塞
  • 进程的创建/终止
  • 进程的层次结构
  • 进程的状态
  • 进程并发

【三】多进程操作

  • multiprocessing模块介绍
  • Process类的介绍
  • 守护进程
  • 进程同步锁
  • 队列
  • 管道
  • 共享数据
  • 信号量
  • 事件
  • 进程池

【四】多线程理论

  • 什么是线程
  • 线程的创建开销
  • 线程和进程的区别
  • 为何要用多线程
  • 经典的线程模型

【五】多线程操作

  • threading模块介绍
  • 开启线程的两种方式
  • 一个进程下开启多个线程
  • 守护进程
  • Python中的GIL锁
  • 同步锁
  • 死锁和递归锁
  • 信号量
  • Event
  • 定时器
  • concurrent.futures模块

【六】协程

  • 协程介绍
  • Greenlet

【七】IO模型

  • IO 模型介绍
  • 阻塞 IO 模型
  • 非阻塞 IO 模型
  • 多路复用 IO 模型
  • 异步 IO 模型
  • IO模型比较
  • selectors模块

【八】异步编程

  • asynico 模块
  • 事件循环
  • 协程/异步编程

【总结】

【1】知识点小结(进程相关)

  • 并行与并发

    • 什么是并发

    • 什么是并行

    • 并行与并发之间的关系

  • 什么是多道技术

  • 进程

    • 程序与进程的区别
    • 什么是进程
    • 进程之间的调度问题
    • 进程运行的三状态图
  • 同步/异步/阻塞/非阻塞

    • 同步和异步
    • 阻塞和非阻塞
    • 异步非阻塞
  • 开启进程的两种方式

  • join方法

  • 进程之间数据相互隔离

【2】知识点小结(进程进阶)

  • 进程对象及部分方法
  • 僵尸进程与孤儿进程
  • 守护进程
  • 互斥锁
  • 进程间通信
  • 生产者与消费者模型

【3】知识点小结(线程相关)

  • 什么是线程
  • 为何要有线程
  • 开启线程的两种方式
  • 多线程实现TCP服务端并发效果
  • 线程对象的join方法
  • 同一个进程下的多线程之间数据共享
  • 线程对象属性及其他方法
  • 守护线程
  • 线程的互斥锁
  • GIL全局解释器锁
  • GIL锁与普通锁的区别
  • 同一个进程下的多线程无法利用多核优势

【4】知识点小结(线程进阶)

  • 什么是死锁与递归锁
  • 信号量
  • Event事件
  • 线程 queue
  • 线程池与进程池
  • 协程

【5】知识点小结(协程进阶)

  • IO 模型简介
  • IO 多路复用
  • 异步 IO

【网络 && 并发】

【1】网络并发总复习

【2】网络并发总复习解释版

【3】并发网络周测题

【4】并发网络周测题解释版

【5】网络并发每日习题

【6】网络并发每日习题解释版

【补充】多进程和多线程以及协程的创建模板