Python的C語言擴展 Cython
C-Python: 或者CPython,指C實現的Python
虛擬機的基礎API。最通用的Python就是是基于C實現的,它的底層API稱為C-Python API,所有Python代碼的最終變成這些API以及數據結構的調用,才有了Python世界的精彩;
Cython:準確說Cython是單獨的一門語言,專門用來寫在Python里面import用的擴展庫。實際上Cython的語法基本上跟Python一致,而Cython有專門的“編譯器”先將 Cython代碼轉變成C(自動加入了一大堆的C-Python API),然后使用C編譯器編譯出最終的Python可調用的模塊。
GIL:Global Interpreter Lock,是Python虛擬機的多線程機制的核心機制,翻譯為:全局解釋器鎖。其實Python線程是
操作系統級別的線程,在不同平臺有不同的底層實現(如win下就用win32_thread, posix下就用pthread等),Python解釋器為了使所有對象的操作是線程安全的,使用了一個全局鎖(GIL)來同步所有的線程,所以造成“一個時刻只有一個Python線程運行”的偽線程假象。GIL是個顆粒度很大的鎖,它的實現跟性能問題多年來也引起過爭議,但到今天它還是經受起了考驗,即使它讓Python在多核平臺下CPU得不到最大發揮。
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!