如何用java来实现“生产者―消费者”问题-java面向对象 - it电子教育门户 高端java培训.htm

来自「这是我自己认真整理的java面向对象的各个方面的知识.想和大家一起来分享我的快乐」· HTM 代码 · 共 618 行 · 第 1/3 页

HTM
618
字号
                  <BR><BR>  &nbsp;synchronized&nbsp;int&nbsp;get(){&nbsp; 
                  <BR><BR>  &nbsp;if(Count&nbsp;==0)&nbsp; 
                  <BR><BR>  &nbsp;try{&nbsp; <BR><BR>  &nbsp;wait();&nbsp; 
                  <BR><BR>  &nbsp;}catch(InterruptedException&nbsp;e){}&nbsp; 
                  <BR><BR>  &nbsp;Item=Buffer[Front];&nbsp; 
                  <BR><BR>  &nbsp;Count--;&nbsp; 
                  <BR><BR>  &nbsp;Front=(Front+1)%Buffer_Length;&nbsp; 
                  <BR><BR>  &nbsp;System.out.println("Got:"+Item);&nbsp; 
                  <BR><BR>  &nbsp;notify();&nbsp; 
                  <BR><BR>  &nbsp;return&nbsp;Item;&nbsp; <BR><BR>  }&nbsp; 
                  <BR><BR>  //set&nbsp;buffer&nbsp; 
                  <BR><BR>  synchronized&nbsp;void&nbsp;set(int&nbsp;value){&nbsp; 
                  <BR><BR>  if(Count==Buffer_Length)&nbsp; 
                  <BR><BR>  &nbsp;try{&nbsp; <BR><BR>  &nbsp;wait();&nbsp; 
                  <BR><BR>  &nbsp;}catch(InterruptedException&nbsp;e){}&nbsp; 
                  <BR><BR>  &nbsp;Buffer[Rear]=value;&nbsp; 
                  <BR><BR>  &nbsp;Count++;&nbsp; 
                  <BR><BR>  &nbsp;Rear=(Rear+1)%Buffer_Length;&nbsp; 
                  <BR><BR>  &nbsp;System.out.println("Set:"+value);&nbsp; 
                  <BR><BR>  &nbsp;notify();&nbsp; <BR><BR>  &nbsp;}&nbsp; 
                  <BR><BR>  }&nbsp; 
                  <BR><BR>  class&nbsp;Producer&nbsp;implements&nbsp;Runnable{&nbsp; 
                  <BR><BR>  &nbsp;Monitor&nbsp;monitor;&nbsp; 
                  <BR><BR>  &nbsp;int&nbsp;speed;&nbsp; 
                  <BR><BR>  &nbsp;Producer(Monitor&nbsp;monitor,int&nbsp;speed){&nbsp; 
                  <BR><BR>  &nbsp;This.monitor=monitor;&nbsp; 
                  <BR><BR>  &nbsp;This.speed=speed;&nbsp; 
                  <BR><BR>  &nbsp;new&nbsp;Thread(this,"Producer").start();&nbsp; 
                  <BR><BR>  &nbsp;}&nbsp; 
                  <BR><BR>  &nbsp;public&nbsp;void&nbsp;run(){&nbsp; 
                  <BR><BR>  &nbsp;int&nbsp;i=0;&nbsp; 
                  <BR><BR>  &nbsp;while(true){&nbsp; 
                  <BR><BR>  &nbsp;monitor.set(i++);&nbsp; 
                  <BR><BR>  &nbsp;try{&nbsp; 
                  <BR><BR>  &nbsp;Thread.sleep((int)(Math.random()*speed));&nbsp; 
                  <BR><BR>  &nbsp;}catch(InterruptedException&nbsp;e){}&nbsp; 
                  <BR><BR>  &nbsp;}&nbsp; <BR><BR>  &nbsp;}&nbsp; 
                  <BR><BR>  }&nbsp; 
                  <BR><BR>  class&nbsp;Consumer&nbsp;implements&nbsp;Runnable{&nbsp; 
                  <BR><BR>  &nbsp;Monitor&nbsp;monitor;&nbsp; 
                  <BR><BR>  &nbsp;int&nbsp;speed;&nbsp; 
                  <BR><BR>  &nbsp;Consumer(Monitor&nbsp;monitor,int&nbsp;speed){&nbsp; 
                  <BR><BR>  &nbsp;This.monitor=monitor;&nbsp; 
                  <BR><BR>  &nbsp;This.speed=speed;&nbsp; 
                  <BR><BR>  &nbsp;new&nbsp;Thread(this,"Consumer").start();&nbsp; 
                  <BR><BR>  &nbsp;}&nbsp; 
                  <BR><BR>  &nbsp;public&nbsp;void&nbsp;run(){&nbsp; 
                  <BR><BR>  &nbsp;while(true){&nbsp; 
                  <BR><BR>  &nbsp;monitor.get();&nbsp; 
                  <BR><BR>  &nbsp;try{&nbsp; 
                  <BR><BR>  &nbsp;Thread.sleep((int)&nbsp;(Math.random()*speed));&nbsp; 
                  <BR><BR>  &nbsp;}catch(InterruptedException&nbsp;e){}&nbsp; 
                  <BR><BR>  &nbsp;}&nbsp; <BR><BR>  &nbsp;}&nbsp; 
                  <BR><BR>  }&nbsp; 
                  <BR><BR>  上述程序在Windows&nbsp;95的JDK&nbsp;1.0.2下通过,它通过改变produce_speed&nbsp;、c&nbsp; 
                  <BR>onsume_speed&nbsp;来改变生产者进程和消费者进程的速度。&nbsp; <BR>&nbsp; 
                  <BR>&nbsp; <BR><BR>&nbsp; <BR><BR><BR>到论坛去,我有问题要问问 
                  <BR><BR>相关知识&nbsp; <BR>Java图形类库概述&nbsp; 
                  <BR>Java应用程序中图像按钮的实现&nbsp; <BR>在网页上发布统计曲线&nbsp; 
                  <BR>Java的网络功能与编程&nbsp; <BR>如何从JAR和ZIP包中析取Java源文件&nbsp; 
                  <BR>如何解决Java方面的问题&nbsp; 
                  <BR>如何让&nbsp;JAVA&nbsp;程序在&nbsp;NT&nbsp;的服务中运行&nbsp; 
                  <BR>java&nbsp;经验大放送&nbsp;1&nbsp; <BR>upload&nbsp; 
                  <BR>jsp已经稳定运行起来&nbsp; <BR>gunjsp的安装,配置&nbsp; 
                  <BR>a&nbsp;connection&nbsp;pool&nbsp; 
                  <BR>Apache+JServ+ojsp+SSL+PHP(IMAP+LDAP+MYSQL)&nbsp;Install&nbsp;Guide&nbsp; 
                  <BR>JAVA中的多线程&nbsp; <BR>Java线程的深入探讨&nbsp; 
                  <BR>Java多线程之"事件分发线程"----Event&nbsp;Dispatch&nbsp;Thread&nbsp;</DIV></DIV></SPAN></TD></TR>
              <TR>
                <TD width="71%">&nbsp;</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&amp;postid=279">收藏</A> 
                  】【 <A href="http://www.mldn.cn/email.jtml?articleid=279" 
                  target=_blank>推荐</A> 】&nbsp;</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">&nbsp;<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">&nbsp;<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">&nbsp;<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">&nbsp;<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">&nbsp;<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 + -
显示快捷键?