// 读者写者问题
【相关文章:Kerio Personal Firew】using system; 【扩展阅读:Cool!!! Eclipse Keyb】
public class book{ 【扩展信息:Tomcat源代码学习日记(2004-0】
using system.threading;private int[] pages;
private bool awriterwait = false; private int readercount = 0;private object mutex = new object(); // 控制对 readercount 的访问
private object db = new object(); // 控制对 pages 的访问 private object obj = new object(); // 控制对 awriterwait 的访问public book(int numofpages){
pages = new int[numofpages]; }public int numofpages{
get{ return pages.length; //常量,无须同步 } }public int this[int index]{
get{ lock(obj){ while( awriterwait ){ monitor.wait(obj); } }lock(mutex){
// readercount的锁 // 检查是否为第一个读者 readercount++; if(readercount == 1) monitor.enter(db); } ... 下一页