原本是作業系統的乙個上機作業,上課沒注意聽所以一直都不知道
以下是具體的**實現,模擬兩個寫者和四個讀者,有不妥的地方希望及時指正哈
using
system;
using
system.threading;
namespace
reader_writer
;string
readernames =;
//初始化書本內容
for(
inti=0
; i<
100; i++)
//初始化2個寫者執行緒
for(
inti=0
; i<
2; i++)
//初始化4個讀者執行緒
for(
inti=0
; i<
4; i++)
//指定執行緒開始執行的順序,可調整
readers[
0].start();
writers[
0].start();
readers[
1].start();
writers[
1].start();
readers[
2].start();
readers[
3].start();
}static
void
readmethod()
正在讀第 頁...
", thread.currentthread.name, page);
//模擬讀過程
thread.sleep(rnd.next(
3000
, 6000
));console.writeline(
"讀者執行緒 完成讀操作.
", thread.currentthread.name);
}catch
(exception ex)
finally
}static
void
writemethod()
開始工作...
", thread.currentthread.name);
intpage
=rnd.next(1,
101);
console.writeline(
"寫者執行緒 正在改寫第 頁的內容
", thread.currentthread.name, page);
thread.sleep(rnd.next(
3000
, 6000
));
console.writeline("
寫者執行緒 完成工作...
", thread.currentthread.name);
}catch
(exception ex)
finally}}
}
讀者寫者問題
生產者消費者問題一樣,讀者寫者也是乙個非常著名的同步問題。讀者寫者問題描述非常簡單,有乙個寫者很多讀者,多個讀者可以同時讀檔案,但寫者在寫檔案時不允許有讀者在讀檔案,同樣有讀者在讀檔案時寫者也不去能寫檔案。上面是讀者寫者問題示意圖,類似於生產者消費者問題的分析過程,首先來找找哪些是屬於 等待 情況。...
讀者寫者問題
問題簡述 讀者 寫者問題的讀寫操作限制 包括讀者優先和寫者優先 1 寫 寫互斥,即不能有兩個寫者同時進行寫操作。2 讀 寫互斥,即不能同時有乙個執行緒在讀,而另乙個執行緒在寫。3 讀 讀允許,即可以有乙個或多個讀者在讀。讀者優先的附加限制 如果乙個讀者申請進行讀操作時已有另乙個讀者正在進行讀操作,則...
讀者 寫者問題
讀者 寫者問題 讀者 寫者問題 readers writers problem 也是乙個經典的併發程式設計問題,是經常出現的一種同步問題。計算機系統中的資料 檔案 記錄 常被多個程序共享,但其中某些程序可能只要求讀資料 稱為讀者 reader 另一些程序則要求修改資料 稱為寫者 writer 就共享...