亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? readerlovewriter.java

?? 讀者寫者進程JAVA編寫
?? JAVA
字號:
import java.io.*;
import java.util.*;


public class ReaderLoveWriter 
{
	public static void main(String args[])throws Exception
	{
	     VisitData visit=new VisitData();
	
	
		Scanner scan=new Scanner(new File("threads.txt"));
		//文件開頭要寫清多少個線程
		int m=scan.nextInt();//第一個讀到的是線程的總數目
		int a[][]=new int[m][3];//記錄每個線程的信息。a[m][0]是讀/寫,a[m][1]是等待時間,a[m][2]是讀/寫時間
		int h=0;
		int writeThread=0,readThread=0;//讀寫數分別多少
		int readerNum=0,writerNum=0;
		while(scan.hasNext())
		{
		  String str=scan.next();
		  //System.out.print(str);
		  if(str.equals("W")) //是寫線程
		  {
		  	writeThread++;
		  	a[h][0]=0;     //0 表示是 寫 
		  	a[h][1]=scan.nextInt();//開始時間
		  	a[h][2]=scan.nextInt();//持續時間
		  	h++;
		  }
		   else               //讀線程
		   {
		   	readThread++;
		   	a[h][0]=0;
		  	a[h][1]=scan.nextInt();
		  	a[h][2]=scan.nextInt();
		  	h++;
		   }
		 }
		 //System.out.println(h+""+readThread+""+writeThread);
		 int i=0,n=0;
		 Writer threadw[]=new Writer[writeThread];//建立線程
		 Reader threadr[]=new Reader[readThread];
		 for(int k=0;k<m;k++)
		 {
		 	
		 	if(a[k][0]==0&&i<writeThread)
		 	{ 
		 	  
		 	  threadw[i]=new Writer(i+1,a[k][1],a[k][2],visit);//線程號,等待時間,讀/寫時間,主要方法。
		 	  i++;	
		 	}
		 	else
		 	{
		 	   threadr[n]=new Reader(n+1,a[k][1],a[k][2],visit);
		 	   n++;
		 	}
		 }
		
		 
		 for(int t=0;t<i;t++)
		 threadw[t].start();//寫進程開始
		 for(int p=0;p<n;p++)
		 threadr[p].start();//讀進程開始
		
		
	}
}


class Reader extends Thread
{
	public int waitTime,doingTime,readerNum;//等待時間,讀時間,讀者數
	public VisitData visit;
	public Reader(int readerNum,int waitTime,int doingTime,VisitData visit )
	{
		super();
		this.waitTime=waitTime;//等待時間
		this.doingTime=doingTime;//讀時間
		this.readerNum=readerNum;//讀者號
		this.visit=visit;
		
	}
	
	 public void run()
	{
		while(true){
	  try
		{
			
			Thread.sleep(waitTime*1000);
			
		}
		catch(Exception e){e.printStackTrace();}
		
	  	System.out.println("-----讀者"+readerNum+"----請求讀^0^\n");
	  	
	      visit.startRead(readerNum);//開始讀
	      System.out.println("-----讀者"+readerNum+"----正在讀。。。。^0^\n");
	      visit.doing(doingTime);//讀書中。。
	      visit.endRead(readerNum); //讀完
	 }
	  	
	}
}
class Writer extends Thread
{
	public int waitTime,doingTime,writerNum;
	public VisitData visit;
	public Writer(int writerNum,int waitTime,int doingTime,VisitData visit )
	{
		super();
		this.waitTime=waitTime;//等待時間
		this.doingTime=doingTime;//寫時間
		this.writerNum=writerNum;//寫者號
		this.visit=visit;
	}
	
	 public void run()
	{
		while(true){
	  try
		{
			
			Thread.sleep((waitTime+1)*1000);//一直等到這個線程開始的時間
			
		}
		catch(Exception e){e.printStackTrace();}
		
	  	System.out.println("-----寫者"+writerNum+"----請求寫^0^\n");
	  	visit.startWrite(writerNum);//開始寫
	      System.out.println("-----寫者"+writerNum+"----正在寫。。。。^0^\n");	
	  	visit.doing(doingTime);//正在寫
	  	visit.endWrite(writerNum);//結束寫
	  	
	  }
	  	
	}
}
class VisitData //訪問數據
{
	 private int readerCount;
	 private int writerCount;
	 private boolean beReading;//是否有人在讀
	 private boolean beWriting;//是否有人在寫
	 public VisitData() //初始化
	 {
		 super();
		 readerCount=0;
		 writerCount=0;
		 beReading=false;
		 beWriting=false;
  
       }
    
	 public  void doing(int sleepTime )//用來表示正在讀或寫
	 {
	  
		  try{
		         Thread.sleep((sleepTime+1)*1000);
		     }catch(Exception e){e.printStackTrace();}
		     
	 }
 
	 public synchronized void startRead(int reader)
	 {
		  while(writerCount>0)
		  {
			   try{
				    System.out.println("-----讀者"+reader+"----等待中。。。。^0^\n");
				    wait();
		            }catch(Exception e){e.printStackTrace();}
		  }
		  readerCount++;
		  if(readerCount>=1)
		  {
		         beReading=true;//表示有人在讀
		  }
	  
	  
	 }
	 
	 public synchronized void endRead(int reader)
	 {
		  --readerCount;
		  if(readerCount==0)
		  {
		        beReading=false;//表示沒人在讀
		  }
		  notifyAll();
		  System.out.println("-----讀者"+reader+"----讀結束^0^\n");
	  
	 }
 
	 public synchronized void startWrite(int writer)
	 {
		  ++writerCount;
		  while(beReading==true||beWriting==true)//當有讀者或是寫者在讀或是寫的話
		  {
			   try
			   {
			    System.out.println("-----寫者"+writer+"----等待中。。。。^0^\n");
			    wait();
			   }catch(Exception e){System.out.println(e.toString());}
		    
	        }
		  beWriting =true;
       }
	 public synchronized void endWrite(int writer)
	 {
		  --writerCount;
		  beWriting=false;
		  System.out.println("-----寫者"+writer+"----寫結束^0^\n");
	        notifyAll();//通知其他人
	 }
	 
       
}
 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合一区二区三区| 粉嫩aⅴ一区二区三区四区| 亚洲美女淫视频| 亚洲色图制服丝袜| 亚洲人成网站在线| 成人免费在线播放视频| 亚洲一区二区精品久久av| 日韩黄色小视频| 国产经典欧美精品| 欧洲一区二区三区在线| 久久日一线二线三线suv| 欧美国产禁国产网站cc| 亚洲成人1区2区| 紧缚捆绑精品一区二区| 色噜噜狠狠一区二区三区果冻| 欧美一区二区在线免费播放| 久久亚洲精品小早川怜子| 午夜婷婷国产麻豆精品| 99精品国产视频| 欧美精品一区二区三区久久久| 亚洲精品免费看| 成人动漫精品一区二区| 国产亚洲婷婷免费| 国产一区二区三区在线观看免费| 欧美日韩在线播放三区四区| 一区二区三区**美女毛片| 99综合影院在线| 亚洲天堂成人网| 91在线观看地址| 亚洲精品视频在线| 91福利在线看| 图片区小说区国产精品视频| 欧美理论电影在线| 久久av中文字幕片| 欧美国产日韩在线观看| 91在线观看美女| 亚洲国产日日夜夜| 欧美成人综合网站| 国产黄色91视频| 亚洲mv大片欧洲mv大片精品| 欧美日韩aaaaa| 免费人成精品欧美精品 | 天堂一区二区在线| 欧美一级一区二区| 福利电影一区二区三区| 午夜视频一区在线观看| 久久色在线观看| 欧美在线观看一区二区| 美女任你摸久久| 亚洲免费资源在线播放| 欧美男人的天堂一二区| 国产福利一区二区三区视频在线| 国产精品二三区| www国产精品av| 在线成人小视频| 色综合天天综合给合国产| 丝袜美腿亚洲色图| 欧美一区二区久久| 欧美成人国产一区二区| 亚洲欧美国产三级| 国产最新精品免费| 91精品国产aⅴ一区二区| 亚洲免费观看高清完整| 极品销魂美女一区二区三区| 欧美一区二区视频在线观看2020| 欧美大白屁股肥臀xxxxxx| 最好看的中文字幕久久| 一本久道中文字幕精品亚洲嫩| 中文字幕不卡的av| 国产精品1024| 久久精品久久精品| 亚洲国产一区二区三区青草影视| 精品国产一区二区精华| 欧美丰满一区二区免费视频| 高清shemale亚洲人妖| 国产一区在线不卡| 日韩电影一区二区三区四区| 欧美国产日韩一二三区| 精品久久久久久久一区二区蜜臀| 欧美日韩亚州综合| 欧美一区二区高清| 日韩无一区二区| 精品福利一二区| 亚洲精品在线免费观看视频| 欧美成人三级在线| 久久久久国产精品厨房| 中文字幕在线一区| 亚洲欧美日韩人成在线播放| 亚洲欧美日韩一区二区三区在线观看| 26uuu国产电影一区二区| 欧美不卡一区二区三区| 中日韩av电影| 久久精品国产一区二区三区免费看 | 亚洲精品国产一区二区精华液| 亚洲国产精品黑人久久久| 亚洲最新视频在线播放| 老鸭窝一区二区久久精品| 91同城在线观看| 久久久亚洲精品石原莉奈| 国产欧美精品一区二区色综合朱莉| 国产日产精品一区| 婷婷开心久久网| 99精品热视频| 国产日韩三级在线| 午夜免费久久看| 99久久精品免费观看| 日韩一级成人av| 午夜精品福利一区二区蜜股av| av影院午夜一区| xvideos.蜜桃一区二区| 精久久久久久久久久久| 日韩一区二区在线看| 日韩精品欧美精品| 日韩美女视频一区二区在线观看| 一区二区三区小说| 91在线视频播放地址| 欧美国产乱子伦| 国产成人一区在线| 国产亚洲自拍一区| 国产经典欧美精品| 亚洲精品久久7777| 日韩免费观看高清完整版 | 91豆麻精品91久久久久久| 亚洲欧洲在线观看av| 欧美男女性生活在线直播观看| 亚洲日本一区二区| 日韩色视频在线观看| 国产suv精品一区二区883| 午夜精品久久久| 欧美日韩国产首页| 成人动漫中文字幕| 青青草视频一区| 《视频一区视频二区| 在线播放中文一区| aaa国产一区| 国产一级精品在线| 天天影视色香欲综合网老头| 国产午夜精品久久久久久久| 91精品国产免费久久综合| 国产麻豆精品theporn| 亚洲一区二区三区在线播放 | 免费久久99精品国产| 国产精品私房写真福利视频| 色偷偷久久一区二区三区| 老司机午夜精品| 三级影片在线观看欧美日韩一区二区| 日韩精品一区二区三区中文精品| 欧美自拍丝袜亚洲| 欧美日韩亚洲综合一区| 欧美网站大全在线观看| 91美女在线观看| 国产91对白在线观看九色| 日韩成人午夜电影| 水蜜桃久久夜色精品一区的特点| 亚洲综合自拍偷拍| 亚洲午夜免费视频| 国产一区在线精品| 国产中文字幕精品| 波多野结衣精品在线| 99久久国产综合精品女不卡| 成人av在线网站| 欧美性大战久久| 欧美丰满高潮xxxx喷水动漫| 精品国产91亚洲一区二区三区婷婷| 91精品国产一区二区三区| 精品久久久久久综合日本欧美| 久久久99精品免费观看| 国产精品久久久久久久浪潮网站| 国产精品女人毛片| 亚洲成人av免费| 成人av在线播放网站| 欧美自拍丝袜亚洲| 国产欧美日韩亚州综合 | 国产麻豆午夜三级精品| 激情久久五月天| 欧美刺激脚交jootjob| 日韩一区二区精品| 欧美成人vps| 青草av.久久免费一区| 日韩**一区毛片| 国产真实乱子伦精品视频| 欧美亚洲日本国产| 欧美一级黄色大片| 精品国产乱码久久久久久老虎 | 视频一区欧美精品| 五月婷婷综合激情| 欧美性色黄大片手机版| 欧美日韩在线观看一区二区| av资源站一区| 久久99在线观看| 精品国产一区二区三区忘忧草| 亚洲国产岛国毛片在线| 国产精品久久久久aaaa| 成人高清av在线| 91精品福利在线一区二区三区| 不卡的av在线| 亚洲一区影音先锋| www.亚洲在线| 一本大道综合伊人精品热热| 亚洲美女在线一区|