python-并发并行同步异步同步锁

Posted benchdog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-并发并行同步异步同步锁相关的知识,希望对你有一定的参考价值。

并发:系统具有处理多个任务(动作)的能力

并行:系统具有同时处理多个任务(动作)的能力

同步:当进程执行到一个IO(等待外部数据)的时候,需要等待,等待即同步

异步:当进程执行到一个IO(等待外部数据)的时候,不需要等待,待数据接收成功后,再回来处理。

 

GIL:全局解释锁:无论你有多少个线程,你有多少个CPU,Python在执行的时候会淡定的在同一时刻只允许一个线程运行。(解释器层面保护进程安全)

GIL的作用:同一时刻,只有一个线程被CPU在执行,造成单线程运行结果,多核用不到。

垃圾回收机制:解释器的一个线程在进行垃圾回收。

CPU切换:io阻塞、cpu执行时间窗口等

线程都是竞争CPU资源来获得执行。

任务:io密集型(io交互多,CPU空闲时间多)、计算密集型(),time.sleep()等同于io操作

对于io密集型任务,python的多线程是有意义的,而计算密集型任务,python的多线程就不适用了,可以采用多进程。

同步锁:即将线程设置成串行,lock=threading.lock(),lock.acquire(),lock.release()

 

以上是关于python-并发并行同步异步同步锁的主要内容,如果未能解决你的问题,请参考以下文章

并发&并行 同步&异步 GIL 任务 同步锁 死锁 递归锁

并发与同步异步的概念

python网络编程基础(线程与进程并行与并发同步与异步)

并行,并发,串行,同步,异步,阻塞,非阻塞,同步阻塞,同步非阻塞,异步阻塞,异步非阻塞

Python随心记--锁

python-多线程等概念