如何用java来实现“生产者―消费者”问题-java面向对象 - it电子教育门户 高端java培训.htm
来自「这是我自己认真整理的java面向对象的各个方面的知识.想和大家一起来分享我的快乐」· HTM 代码 · 共 618 行 · 第 1/3 页
HTM
618 行
<BR><BR> synchronized int get(){
<BR><BR> if(Count ==0)
<BR><BR> try{ <BR><BR> wait();
<BR><BR> }catch(InterruptedException e){}
<BR><BR> Item=Buffer[Front];
<BR><BR> Count--;
<BR><BR> Front=(Front+1)%Buffer_Length;
<BR><BR> System.out.println("Got:"+Item);
<BR><BR> notify();
<BR><BR> return Item; <BR><BR> }
<BR><BR> //set buffer
<BR><BR> synchronized void set(int value){
<BR><BR> if(Count==Buffer_Length)
<BR><BR> try{ <BR><BR> wait();
<BR><BR> }catch(InterruptedException e){}
<BR><BR> Buffer[Rear]=value;
<BR><BR> Count++;
<BR><BR> Rear=(Rear+1)%Buffer_Length;
<BR><BR> System.out.println("Set:"+value);
<BR><BR> notify(); <BR><BR> }
<BR><BR> }
<BR><BR> class Producer implements Runnable{
<BR><BR> Monitor monitor;
<BR><BR> int speed;
<BR><BR> Producer(Monitor monitor,int speed){
<BR><BR> This.monitor=monitor;
<BR><BR> This.speed=speed;
<BR><BR> new Thread(this,"Producer").start();
<BR><BR> }
<BR><BR> public void run(){
<BR><BR> int i=0;
<BR><BR> while(true){
<BR><BR> monitor.set(i++);
<BR><BR> try{
<BR><BR> Thread.sleep((int)(Math.random()*speed));
<BR><BR> }catch(InterruptedException e){}
<BR><BR> } <BR><BR> }
<BR><BR> }
<BR><BR> class Consumer implements Runnable{
<BR><BR> Monitor monitor;
<BR><BR> int speed;
<BR><BR> Consumer(Monitor monitor,int speed){
<BR><BR> This.monitor=monitor;
<BR><BR> This.speed=speed;
<BR><BR> new Thread(this,"Consumer").start();
<BR><BR> }
<BR><BR> public void run(){
<BR><BR> while(true){
<BR><BR> monitor.get();
<BR><BR> try{
<BR><BR> Thread.sleep((int) (Math.random()*speed));
<BR><BR> }catch(InterruptedException e){}
<BR><BR> } <BR><BR> }
<BR><BR> }
<BR><BR> 上述程序在Windows 95的JDK 1.0.2下通过,它通过改变produce_speed 、c
<BR>onsume_speed 来改变生产者进程和消费者进程的速度。 <BR>
<BR> <BR><BR> <BR><BR><BR>到论坛去,我有问题要问问
<BR><BR>相关知识 <BR>Java图形类库概述
<BR>Java应用程序中图像按钮的实现 <BR>在网页上发布统计曲线
<BR>Java的网络功能与编程 <BR>如何从JAR和ZIP包中析取Java源文件
<BR>如何解决Java方面的问题
<BR>如何让 JAVA 程序在 NT 的服务中运行
<BR>java 经验大放送 1 <BR>upload
<BR>jsp已经稳定运行起来 <BR>gunjsp的安装,配置
<BR>a connection pool
<BR>Apache+JServ+ojsp+SSL+PHP(IMAP+LDAP+MYSQL) Install Guide
<BR>JAVA中的多线程 <BR>Java线程的深入探讨
<BR>Java多线程之"事件分发线程"----Event Dispatch Thread </DIV></DIV></SPAN></TD></TR>
<TR>
<TD width="71%"> </TD>
<TD width="29%">【 <A
href="http://www.mldn.cn/print.jtml?articleid=279">打印</A> 】【
<A
href="http://www.mldn.cn/member/favlist.jtml?action=add&postid=279">收藏</A>
】【 <A href="http://www.mldn.cn/email.jtml?articleid=279"
target=_blank>推荐</A> 】 </TD></TR>
<TR>
<TD colSpan=2>
<TABLE cellSpacing=3 cellPadding=0 width="100%" align=center
bgColor=#ffffff border=0>
<TBODY>
<TR height=25>
<TD align=middle width="33%"><IMG height=95 alt=java视频教程
src="如何用JAVA来实现“生产者―消费者”问题-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/javavideo.gif"
width=642></TD></TR>
<TR>
<TD class=content-table vAlign=top align=middle>
<TABLE>
<TBODY>
<TR>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-8-21/article_view_2251.htm"
rel=external><IMG class=midImg alt=struts2.0入门视频
src="如何用JAVA来实现“生产者―消费者”问题-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/struts2.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=struts2.0入门视频
href="http://www.mldn.cn/articleview/2007-8-21/article_view_2251.htm"
rel=external>struts2.0入门视频</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-6-15/article_view_2141.htm"
rel=external><IMG class=midImg
alt=JAVAEE学习流程和学习方法
src="如何用JAVA来实现“生产者―消费者”问题-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/j2eejc.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=JAVAEE学习流程和学习方法
href="http://www.mldn.cn/articleview/2007-6-15/article_view_2141.htm"
rel=external>JAVAEE学习流程和学习方..</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-6-5/article_view_2091.htm"
rel=external><IMG class=midImg
alt=1-Java介绍及JDK配置
src="如何用JAVA来实现“生产者―消费者”问题-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/javase.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=1-Java介绍及JDK配置
href="http://www.mldn.cn/articleview/2007-6-5/article_view_2091.htm"
rel=external>1-Java介绍及JDK配置..</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-4-19/article_view_2012.htm"
rel=external><IMG class=midImg alt=Oracle中的多表连接
src="如何用JAVA来实现“生产者―消费者”问题-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/Oracle.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=Oracle中的多表连接
href="http://www.mldn.cn/articleview/2007-4-19/article_view_2012.htm"
rel=external>Oracle中的多表连接</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-4-11/article_view_1978.htm"
rel=external><IMG class=midImg
alt=Struts中logic标签的使用
src="如何用JAVA来实现“生产者―消费者”问题-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/struts.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=Struts中logic标签的使用
href="http://www.mldn.cn/articleview/2007-4-11/article_view_1978.htm"
rel=external>Struts中logic标签..</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD colSpan=2>
<TABLE cellSpacing=3 cellPadding=0 width="100%" align=center
bgColor=#ffffff border=0>
<TBODY>
<TR height=25>
<TD align=middle width="33%" bgColor=#aac4c4><FONT
color=#ffffff>相关文章</FONT></TD>
<TD align=middle width="33%" bgColor=#aac4c4><FONT
color=#ffffff>推荐文章</FONT></TD></TR>
<TR>
<TD class=content-table vAlign=top>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-1-7/article_view_287.htm"
rel=external>用JAVA做数字签名</A></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[1.7]</SPAN></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-1-7/article_view_284.htm"
rel=external>探索 Java 中的 TimeZ..</A></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[1.7]</SPAN></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-1-7/article_view_283.htm"
rel=external>使用Java实现语言解释器</A></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[1.7]</SPAN></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-1-7/article_view_278.htm"
rel=external>如何实现大段文本的快速替换</A></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[1.7]</SPAN></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-1-7/article_view_275.htm"
rel=external>理解java的多形性</A></TD>
<TD style="TEXT-ALIGN: right"><SPAN
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?