python/进程线程的总结
一、进程和线程的描述:
进程:最小的资源管理单位
线程:最小的执行单位
执行一个进程时就默认执行一个线程(主线程)
进程和线程的工作方式:
串行:
假如共有A、B、C任务, 串行的执行流程是第一个执行A任务,A任务执行完毕后再执行B任务,B任务执行完毕后最后执行C任务。
并发:
假如共有A、B、C任务,并行的执行流程是执行A任务一段时间,切换成B任务执行一段时间,在切换到C任务,直到A、B、C三个任务都执行完毕。
并行:
假如共有A、B、C任务,并发的执行流程是同一时刻同时执行A、B、C任务但是必须要有多个处理器(CPU)
Cpython因为存在GIL导致同一时刻同一进程内只能有一个线程执行
关于daemon:程序直到不存在守护线程在退出
同步锁:由于多线程处理公共数据(会导致数据错误才进行加锁)
死锁:在一个进程内有多个线程在获取用户锁,同一时刻不同的线程拿到俩锁,想要 交互的时候谁都没有释放就一直等待对方释放,就产生了死锁的情况
递归锁:递归锁的内部有一个计数的机制,当一个线程拿到以后就自加一。有进程释放一次就自减一。注(默认的值是0,当锁的值不为0时,所有的进程均不能进行获取)
时间: 2024-10-10 06:56:14