Python如何運行?python
依賴解釋器,解釋器會執行2個步驟:多線程
1. 將源碼編譯爲字節碼,不是2進制代碼,線程
-->若是Python進程在機器上擁有寫入權限,那麼它將把程序的字節碼保存爲一個以.pyc 爲擴展名的文件,進程
-->若是Python沒法在機器上寫入字節碼,那麼字節碼將會在內存中生成並在程序結束時自動丟棄。 內存
建議:在構建程序的時候最好給Python賦上在計算機上寫的權限,這樣只要源代碼沒有改變,生成的.pyc文件能夠重複利用,提升執行效率。資源
2. 將字節碼發到Python虛擬機(Pathon Virtual Machine)上運行,PVM是python系統的一部分,是python的運行引擎,控制循環運行字節碼。源碼
參考其餘博主。虛擬機
Python多線程?編譯
python主要經過thread和threading實現多線程支持,threading模塊對thread模塊進行二次封裝,比較好用,但因爲GIL的存在使得即便用多處理器仍然沒法充分利用CPU資源。thread
Python多線程機制在GIL(global interpreter Lock)全局解釋鎖的基礎上創建的,在多線程狀況,GIL經過控制解釋器的使用權限分配給線程。
假設A B C三個線程,A得到解釋器的權限,剩下兩個線程須要等待,