在JS中實現PV操作

2021-09-29 20:16:36 字數 990 閱讀 3652

pv操作原理:新增鏈結描述

前言:在參加 中國計算機技術職業資格考試複習的時候,看到書中有一種對互斥與同步問題的解決方法,稱為pv操作,具體的pv操作原理就不在這裡贅述,不了解的小夥伴可以到置頂的鏈結中,看別的大佬的講解,下面就是我在js中進行的pv操作相關原理的實現**塊,如有需要的小夥伴可以進行參考~

// 使用時new新的pv物件 可最大訊號量 可選設定互斥閥值

function pv(maxpv_index,minpv_index)else

if(minpv_index!=null)else

}// 建立p操作方法

this.p = function()

// 建立v操作方法

this.v = function()

// 建立判斷當前是否能夠進行互斥操作方法

this.cando = function()else

}//建立獲得剩餘互斥操作次數方法

this.getpv_index = function()

}// 測試**

var pv_one = new pv(5);

// 查詢當前可使用資源數量

console.log(pv_one.getpv_index());

// 進行p操作

pv_one.p();

console.log(pv_one.getpv_index());

//進行v操作

pv_one.v();

console.log(pv_one.getpv_index());

// 檢視當前是否還能進行p操作

console.log(pv_one.cando());

//測試不能進行p操作時的情況

while(pv_one.getpv_index()>0)

console.log(pv_one.getpv_index());

console.log(pv_one.cando());

C語言實現PV操作

pv操作是典型的同步機制之一。用乙個訊號量與乙個訊息聯絡起來,當訊號量的值為0時,表示期望的訊息尚未產生 當訊號量的值非0時,表示期望的訊息已經存在。用pv操作實現程序同步時,呼叫p操作測試訊息是否到達,呼叫v操作傳送訊息。概念 臨界區 指的是乙個訪問共用資源 例如 共用裝置或是共用儲存器 的程式片...

作業系統中的PV操作

pv操作由p操作原語和v操作原語組成 原語是不可中斷的過程 對訊號量進行操作,具體定義如下 p s 將訊號量s的值減1,即s s 1 如果s 0,則該程序繼續執行 否則該程序置為等待狀態,排入等待佇列。v s 將訊號量s的值加1,即s s 1 如果s 0,則該程序繼續執行 否則釋放佇列中第乙個等待訊...

學 生活中的PV操作

之前寫過作業系統的文章,然後最近發現少了點什麼,仔細檢查發現,沒寫pv操作,那麼我們接下來就單獨為pv操作寫一篇部落格,讓大家不再懼怕pv操作,我們深入淺出的分析,讓大家輕鬆學習pv操作。學習pv操作之前,我們首先來了解兩個很基礎的概念 同步 互斥 同步 其實說同步還不如說 協作 就是我們的目標只有...