中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中的隊列是什么

發布時間:2021-08-12 15:12:24 來源:億速云 閱讀:202 作者:chen 欄目:大數據

這篇文章主要介紹“Python中的隊列是什么”,在日常操作中,相信很多人在Python中的隊列是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python中的隊列是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

什么是隊列?

隊列是一種有序的數據集合  
  • 新數據項的添加總發生在一端——隊尾(rear)
  • 現存數據項的移除總發生在另一端——隊頭(front)

Python中的隊列是什么


隊列規則:  先進先出FIFO(First In First Out)  ,先進入的數據先出去

隊列僅有一個入口和一個出口  ,不允許數據項直接插入隊列,也不允許從中間刪除數據項

隊列例子1:打印機的打印隊列


Python中的隊列是什么


隊列例子2:進程調度

操作系統的內核采用了多個隊列來對系統同時運行的進程進行調度        

補充:
         
  • 一段不運行的代碼——程序

  • 一段運行的代碼——進程

  • 進程由許多線程組成

  • 進程的目的是實現程序的并發


CPU的內核利用隊列調度進程(運行的代碼),內核越多,CPU的性能越好。當進程的順序出錯導致資源分配死循環,就會出現進程死鎖

進程調度特點:

  • 進程數越多于CPU核心數(于是就要進行進程調度)

  • 有些進程還要等待不同類型的I/O事件(I/O事件速度<<CPU處理速度)

進程調度原則:

采用“先到先服務”和“資源充分利用”原則。因為CPU的內核進行進程調度采用的是隊列,故對應“先到先服務”策略

隊列例子3:鍵盤緩沖    

   
鍵盤敲擊速度較快,I/O事件速度較慢,故不會馬上顯示到顯示屏上面,利用隊列的特點(FIFO)存儲敲擊的進程      

隊列的操作函數

Queue()
創建隊列
enqueue(item)
item添加到隊尾
dequeue()從隊首移除數據
isEmpty()
是否為空
size()
數據項個數

隊列操作函數例子:


Python中的隊列是什么

隊列實現

利用python列表實現隊列

class Queue():    """隊列"""    def __init__(self):        self.items = []
   def enqueue(self, item):        """插入元素, 時間復雜度O(n)"""        self.items.insert(0, item)
   def dequeue(self):        """刪除元素,時間復雜度O(1)"""        return self.items.pop()
   def size(self):        return len(self.items)            def isEmpty(self):        return self.items == []


到此,關于“Python中的隊列是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大名县| 辽中县| 双辽市| 青岛市| 闸北区| 延庆县| 贵州省| 湖南省| 博野县| 库尔勒市| 金堂县| 明水县| 厦门市| 从江县| 米易县| 龙胜| 德清县| 犍为县| 德惠市| 龙井市| 武邑县| 天长市| 宜城市| 甘孜| 永清县| 鞍山市| 石家庄市| 吉首市| 湟源县| 邯郸市| 乌恰县| 漾濞| 黔南| 瓮安县| 武城县| 泊头市| 望都县| 高阳县| 庆元县| 弥渡县| SHOW|