讀者 寫者問題思想

2021-07-23 20:35:42 字數 892 閱讀 3163

讀者-寫者問題是乙個經典的併發程式設計問題,是經常出現的一種同步問題。計算機系統中的資料(檔案、記錄)常被多個程序共享,但其中某些程序可能只要求讀資料(稱為讀者);另一些程序則要求修改資料(稱為寫者)。就共享資料而言,reader和writer是兩組併發程序共享一組資料區,要求:

(1)允許多個讀者同時執行讀操作;

(2)不允許讀者、寫者同時操作;

(3)不允許多個寫者同時操作。

1)讀者優先

對於讀者優先,應滿足下列條件:

如果新讀者到:

1、無讀者、寫者,新讀者可以讀;

2、有寫者等待,但有其它讀者正在讀,則新讀者也可以讀;

3、有寫者寫 ,新讀者等待。

如果新寫者到:

1、無讀者,新寫者可以寫;

2、有讀者,新寫者等待;

3、有其他寫者,新寫者等待。

讀者優先的設計思想:讀程序只要看到有其它讀程序正在讀,就可以繼續進行讀;寫程序必須等待所有讀程序都不讀時才能寫,即使寫程序可能比一些讀程序更早提出申請。該演算法只要還有乙個讀者在活動,就允許後續的讀者進來,該策略的結果是,如果有乙個穩定的讀者流存在,那麼這些讀者將在到達後被允許進入。而寫者就始終被掛起,直到沒有讀者為止。

2)寫者優先1

為了解決以上問題,寫者優先的設計思想是在乙個寫者到達時如果有正在工作的讀者,那麼該寫者只要等待正在工作的讀者完成,而不必等候其後面到來的讀者就可以進行寫操作。注意 ,該演算法當乙個寫者在等待時,後到達的讀者是在寫者之後被掛起,而不是立即允許進入。

寫者優先2

為了保證寫者相對於讀者的優先,需要提高寫者程序的優先順序

讀者寫者問題

生產者消費者問題一樣,讀者寫者也是乙個非常著名的同步問題。讀者寫者問題描述非常簡單,有乙個寫者很多讀者,多個讀者可以同時讀檔案,但寫者在寫檔案時不允許有讀者在讀檔案,同樣有讀者在讀檔案時寫者也不去能寫檔案。上面是讀者寫者問題示意圖,類似於生產者消費者問題的分析過程,首先來找找哪些是屬於 等待 情況。...

讀者寫者問題

問題簡述 讀者 寫者問題的讀寫操作限制 包括讀者優先和寫者優先 1 寫 寫互斥,即不能有兩個寫者同時進行寫操作。2 讀 寫互斥,即不能同時有乙個執行緒在讀,而另乙個執行緒在寫。3 讀 讀允許,即可以有乙個或多個讀者在讀。讀者優先的附加限制 如果乙個讀者申請進行讀操作時已有另乙個讀者正在進行讀操作,則...

讀者 寫者問題

讀者 寫者問題 讀者 寫者問題 readers writers problem 也是乙個經典的併發程式設計問題,是經常出現的一種同步問題。計算機系統中的資料 檔案 記錄 常被多個程序共享,但其中某些程序可能只要求讀資料 稱為讀者 reader 另一些程序則要求修改資料 稱為寫者 writer 就共享...