一.GIL 全局解释器锁(cpython) 1.为什么会有这个锁:为了线程安全,减少python使用者的上手难度 GIL 使得同一个时刻只有一个线程在一个cpu上执行字节码,无法隐射到多个cpu,多核上执行。 2.特殊情况下会释放GIL:达到特定字节码行数、到底特定数目时间片、IO操作(主动) 二:并发和并行的区别 并发:描述程序的组织结构...
3.四个线程 A B C D,其中D要等到ABC全执行完毕才执行,而且 ABC是同步运行 最开始我们介绍了thread.join(),可以让一个线程等待另一个线程运行完毕再执行,那么我们可以在D线程依次join A B C ,不过者也就使得A B C 必须依次执行,而我们要求这三个同步运行。 这种情况我们可以使用 CountDownLatch 来实现 创...
如何解决: 1、重写python编译器(官方cpython)如使用:PyPy解释器 2、调用C语言的链接库 异步 不按照顺序执行,并行执行。 ps:可以理解为在不同的线程执行 串行:类似于同步 并行:类似于异步执行【执行任务的数量小于或者等于cpu的数量】 并发:伪并行,看似并行,实际由CPU高速交替执行的结果【任务的数量大于cpu的数量】...