多任务:操作系统在可以在同一时间运行多个程序
1.多任务的执行方式:
1.1 并发: 多个任务交替执行
1.2 并行: 多个任务一起执行
2.多任务的实现方式
2.1 线程
2.2 进程
2.3 协程
3.线程
3.1 线程是操作系统中的最小的执行单元
3.2 在一个进程内的所有线程共享全局变量
3.3 因为全局解释器锁的缘故,python中的多线程是一个伪多线程
3.4 GIL(Global Interpreter Lock,全局解释器) :python中为了解决多线程之间的数据的完整性和状态同步问题的准备的锁
4.线程同步
4.1 为什么进行线程同步
如果多个线程同时对同一个全局变量操作,会出现资源竞争的问题,导致数据错误,为了解决这个问题,需要进行线程同步
4.2 什么是线程同步
线程同步是多个线程按先后顺序执行。实现线程同步则需要引入锁的机制
4.3 什么是互斥锁
互斥锁:在线程执行时对资源加互斥锁,使得其他线程无法操作资源,直到该线程释放资源后,将锁打开,其他线程才能对资源进行操作。
4.4 什么是死锁
死锁是多个线程共享资源时,几个线程分别占有一部分资源并且等待其他线程的资源时,就会造成死锁。
5.进程
5.1 进程是操作系统中的最小资源分配单元。
5.2 一个程序中至少拥有一个进程,一个进程至少拥有一个线程
5.3 同一进程中的线程数据共享
5.4 每一个进程拥有独立的内存空间