吐槽!簡單淺顯講述PV操作 訊號量 互斥 同步

2021-09-14 00:48:33 字數 905 閱讀 8174

吐槽

書本上的pv操作在講毛線啊,完全是一頭霧水,都是晦澀難懂的解釋,甚至有些書本根本就直接將pv操作了,p是什麼,v是什麼,都是沒有任何詳細的解釋的

訊號量

對於訊號量就可以認為是乙個倉庫的操作概念,訊號就是反饋乙個通知罷了,我這個操作做完了,就給你乙個訊號,我操作了多少就是乙個量的概念,這就是我理解的訊號量

p操作

p操作就是從倉庫裡面拿貨,如果倉庫裡面沒有貨,那麼執行緒就開始等待了,直到v操作往倉庫裡新增貨物,為了避免p操作一直等待下去,一般會設定乙個超時時間

v操作

v操作就是往倉庫裡面放貨,如果倉庫滿了,執行緒等待,直到有p操作,從倉庫中拿走貨物,出現空位

p操作詳情

貨物個數減1,減了貨物之後,貨物個數》=0,說明已經拿到貨物了,執行緒繼續正常執行,如果<0那麼就執行緒阻塞

v操作詳情

貨物個數+1,加了貨物之後,貨物個數<=當前倉庫容量說明新增成功,執行緒繼續正常執行,如果》容量,那麼執行緒就阻塞了

互斥與同步

相交程序之間的關係主要有兩種,同步和互斥。互斥是指散布在不同程序之間的若干程式片段,當某個程序執行其中乙個程式片段的時候,其他程序就不能執行他們之中的任一程式片段,只能等到該程序執行完這個程式片段後才可以執行。同步,是指散布在不同程式程序之間的若干程式片段,他們的執行必須嚴格按照規定的某種先後次序來執行,這種先後次序依賴於要完成的特ing的任務

互斥是兩個執行緒之間不可以同時執行,他們會互相排斥,必須等待乙個執行緒執行完畢,另乙個才能夠執行,為同步也是不能同時執行的,必須按照某種特定的次序來執行相應的執行緒!(是一種講究先後順序的互斥)

訊號量,PV操作

它從整型訊號量 記錄型訊號量,進而發展為 訊號量集 機制 訊號量集,就是訊號量的集合 現在要用的是記錄型訊號量 1,訊號量幹嘛用的?訊號量 解決程序間同步與互斥問題 2.訊號量的組成 訊號量 分很多種,在此寫記錄型訊號量 record semaphore 訊號量組成 每個訊號量s除乙個整數值s.va...

訊號量同步 P V 操作

訊號是 e.w.dijkstra 在二十世紀六十年代末設計的一種程式設計架構。dijkstra 的模型與鐵路操作有關 假設某段鐵路是單線的,因此一次只允許一列火車通過。訊號將用於同步通過該軌道的火車。火車在進入單一軌道之前必須等待訊號燈變為允許通行的狀態。火車進入軌道後,會改變訊號狀態,防止其他火車...

PV操作和訊號量

乙個程序被分為了 就緒 ready 執行 running 和 阻塞 blocking 三個工作狀態,當前用處理器的哪個程序是 執行 狀態,當前已經具備了使用處理器的條件而等待處理器的程序是處於就緒狀態的程序,當執行的程序由於某種原因無法繼續使用處理器的時候就停止他使用處理器使他進入 阻塞 狀態,當他...