Python的解释器,从运行过程上来说就是在模拟一个CPU的处理,只要理解了这一点,python中鼎鼎大名的全局解释锁和多进程也就能够理解了。(Ps:在远古时代,python社区试图把python的解释锁拿掉,但是效果并不理想,因为共享资源及其产生的锁机制极大的制约了处理速度。虽说如此,但是我们还是可以基于多台服务器,用python实现一个简单的分布式架构和多进程处理框架的,不过这又是另一话题了。)所以,在只要理解了CPU的处理机制也就理解了python的解释器。
从整个py文件的执行过程来讲,核心只有两个,那就是虚拟机和字节码,这和java的实现是一样的,但是jvm在字节码的解释上做的比python更加开放,只要是能够解释成jvm能识别的字节码文件,jvm就能够执行。解释器的激活相当简单,只要在屏幕上输入python,就可以了,如下图。
整个执行过程简单来讲,python会先对文件中的源代码进行编译生成一条条的字节码,最后再由虚拟机按照顺序一条条执行,就完成了整个过程。如下图。
编译器和虚拟机这些东西都藏身于python35.dll文件中。有感于今天编写一个多进程的脚本时,一个简单的资源分配都算了好久,决定每周争取一篇聊聊计算机的相关话题,一篇会写写一些简单的算法实现。