楔子 函數是任何一門編程語言都具備的基本元素,它可以將多個動作組合起來,一個函數代表了一系列的動作。當然我們之前說函數也是一個變量,該變量指向一個函數。而且在調用函數時會干什么來着,沒錯,要在運行時棧中創建棧幀,用於函數的執行。 那么下面就來看看函數在C中是如何實現的,生得一副什么模樣 ...
楔子 這次我們來說一下Python中的多線程,在上篇博客中我們說了Python的線程,我們說Python中的線程是對OS線程進行了一個封裝,並提供了一個線程狀態 PyThreadState 對象,來記錄OS線程的一些狀態信息。 那什么是多線程呢 首先線程是操作系統調度cpu工作的最小單元,同理進程則是操作系統資源分配的最小單元,線程是需要依賴於進程的,並且每一個進程只少有一個線程,這個線程我們稱之 ...
2020-09-11 01:30 0 503 推薦指數:
楔子 函數是任何一門編程語言都具備的基本元素,它可以將多個動作組合起來,一個函數代表了一系列的動作。當然我們之前說函數也是一個變量,該變量指向一個函數。而且在調用函數時會干什么來着,沒錯,要在運行時棧中創建棧幀,用於函數的執行。 那么下面就來看看函數在C中是如何實現的,生得一副什么模樣 ...
,這個模塊是由C編寫,內嵌在解釋器里面。我們可以import調用,但是在Python安裝目錄里面則是看不到的 ...
楔子 內存管理,對於Python這樣的動態語言來說是非常重要的一部分,它在很大程度上決定了Python的執行效率,因為Python在運行中會創建和銷毀大量的對象,這些都涉及內存的管理,因此精湛的內存管理技術是確保內存使用效率的關鍵。 此外,我們知道Python還是一門提供了垃圾回收機制(GC ...
楔子 現在絕大部分的語言都實現了垃圾回收機制,這其中也包括Python,而不同的語言采用的垃圾回收算法也各不相同。那么,常見的垃圾回收算法都有哪些呢? 引用計數法(reference count): 記錄對象的被引用次數, 引用計數降為0時回收 標記-清除法(mark-sweep ...
本章將會從前一章的概念設計帶你到初級的實現過程。你將先為編譯器和解釋器構造一個靈活的框架,接着將初級版的編譯器解釋器組件集成到框架中。最后編寫端對端的測試用例檢驗這些框架和組件。 ==>> 本章中文版源代碼下載:svn co http://wci.googlecode.com/svn ...
楔子 這次我們來看一下Python中類的繼承與屬性查找機制,我們說Python是支持類的多繼承的,在查找屬性的時候會沿着繼承鏈不斷找下去。那么下面我們就來深入地考察一下類的繼承與屬性查找在底層是如何實現的。 深入class 我們知道Python里面有很多以雙下划線開頭、雙下划線結尾的方法 ...
楔子 Python除了給我提供了很多的類之外,還支持我們定義屬於自己的類,那么Python底層是如何做的呢?我們下面就來看看。 自定義class 老規矩,如果想知道底層是怎么做的,那么就必須要通過觀察字節碼來實現。 通過之前對函數機制的分析中,我們知道對於一個包含函數定義的Python ...
楔子 在上一篇博客中,我們說了Python函數的底層實現,並且還演示了如何自定義一個函數,雖然這在工作中沒有太大意義,但是可以讓我們深刻理解函數的行為。此外我們還介紹了如何獲取函數的參數,而這一次我們就來看看函數如何調用的。 函數的調用 我們以一個非常簡單的函數為例,看看它的字節碼 ...