【网络编程】
【一】CS与BS架构
- 什么是 CS 架构
- 什么是 BS 架构
【二】操作系统基础与网络通信基础
- 互联网的本质
- OSI七层协议
- TCP/IP五层模型
【三】互联网开发架构
【五】粘包
【六】粘包的解决办法
【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