Java 多線性讀者寫者問題

2021-06-16 07:42:13 字數 1036 閱讀 6586

package namespace;

class man

class input implements runnable

public void run()

catch(exception e) {}

if(num==1)//等待被喚醒之後,下面就要對其進行寫的操作了

else

//上面是已經執行完寫的動作

man.flag=true;//寫完之後,要把flag設定成true ,這代表已經寫完,等被讀,如果再執行寫操作的話,上面flag=true ,就開始了等待了

num=(num+1)%2;

man.notify();//

}} }}

class output implements runnable

public void run()

catch(exception e) {}

system.out.println(man.name+"...."+man.***);

man.flag=false;

man.notify();

}} }

}public class study}/*

* 多執行緒讀者寫者問題

* 執行緒之間的通訊一般都是一段共享資料的操作來進行通訊的

* * 裡面的兩個執行緒就是乙個讀乙個寫,然而這兩個操作是通過兩個執行緒同時進行的.因此如果執行緒不同步,將會出現安全性問題

* 所謂的安全性問題就是線和寫和線和讀的結果不一樣,出就是讀出來的值並不是寫進行的那樣,這樣就出來了安全性問題

*問題的解決:

* 出現這種同時操作乙個物件的問題,就是把它們操作那個物件的**進行同步

* 讀者與寫者的問題要考慮到兩個方面:

* 1. 讀和寫的兩個執行緒要同步

* 2. 讀和寫要寫進去乙個就讀乙個

* *

* * */

/* 2011/10/23  21:22:20

* */

讀者寫者問題

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

讀者寫者問題

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

讀者 寫者問題

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