python中隊列和棧,進程,線程,協程,面向對象的特點,迭代器,死鎖和互斥鎖

隊列和棧的區別:

隊列(Queue):是限定只能在表的一端進行插入和另一端刪除操作的線性表

棧(Stack):是限定之能在表的一端進行插入和刪除操作的線性表

隊列和棧的規則

隊列:先進先出

棧:先進后出

隊列和棧的遍歷數據速度

隊列:基于地址指針進行遍歷,而且可以從頭部或者尾部進行遍歷,但不能同時遍歷,無需開辟空間,因為在遍歷的過程中不影響數據結構,所以遍歷速度要快

棧:只能從頂部取數據,也就是說最先進入棧底的,需要遍歷整個棧才能取出來,遍歷數據時需要微數據開辟臨時空間,保持數據在遍歷前的一致性

線程,線程,和協程

進程:進程是系統進行資源分配和調度的?個獨立單位.

線程:線程是進程的?個實體, 也叫輕量級進程,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位.線程自己基本上不擁有系統資源,只擁有?點在運行中必不可少的資源。但是它可與同屬?個進程的其他的線程共享進程所擁有的全部資源.

協程:協程執行過程中,在協程內部可中斷,然后轉而執行別的協程,在適當的時候再返回來接著執行。協程之間不是調用者與被調用者的關系,而是彼此對稱、平等的,通過相互協作共同完成任務。


面向兌現的特點:封裝,繼承,多態

封裝:

就是把抽象的數據和對數據進行的操作封裝在一起,將屬性和方法封裝到一個抽象的類中

數據被保存在內部,程序的其他部分只有通過被授權的操作(成員方法)才能對數據進行操作。外界使用類創建對象,然后讓對象調用方法

通過在實例上調用方法,我們就直接操作了對象內部的數據,但無需知道方法內部的實現細節。對象方法的細節都被封裝在類的內部


什么叫可迭代對象?迭代器?生成器是迭代器嗎?

可迭代對象:

可迭代對象包含迭代器。

如果一個對象擁有__iter__方法,其是可迭代對象

迭代器:

一個對象擁有next方法,就是迭代器

生成器:

生成器是一個特殊的迭代器


死鎖:

1.關于死鎖。 死鎖,就是當多個進程或者線程在執行的過程中,因爭奪共享資源而造成的一種互相等待的現象,一旦產生了死鎖,不加人工處理,程序會一直等待下去,這也被稱為死鎖進程。

互斥鎖:

只有當一個進程在進行資源的時候,進行上鎖,可以保護資源,只有當他運行玩的時候,才會進行解鎖。對數據的保護

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容