易截截图软件、单文件、免安装、纯绿色、仅160KB

java生产者消费者

题目:请用多线程实现一个生产者类和一个消费者类,生产者随机生成20个字符,消费者将字符打印到控制台。
class SyncStack{ //同步堆栈类
   private int index = 0; //堆栈指针初始值为0
   private char []buffer = new char[6]; //堆栈有6个字符的空间
   public synchronized void push(char c){ //加上互斥锁
     while(index = = buffer.length){ //堆栈已满,不能压栈
     try{
        this.wait(); //等待,直到有数据出栈
       }catch(InterruptedException e){}
       }
   this.notify(); //通知其它线程把数据出栈
   buffer[index] = c; //数据入栈
   index++; //指针向上移动
   }
   public synchronized char pop(){ //加上互斥锁
       while(index ==0){ //堆栈无数据,不能出栈
        try{
           this.wait(); //等待其它线程把数据入栈
        }catch(InterruptedException e){}
          }
       this.notify(); //通知其它线程入栈
       index- -; //指针向下移动
       return buffer[index]; //数据出栈
    }
       }
    class Producer implements Runnable{ //生产者类
       SyncStack theStack;
        //生产者类生成的字母都保存到同步堆栈中
       public Producer(SyncStack s){
          theStack = s;
       }
       public void run(){
          char c;
          for(int i=0; i<20; i++){
            c =(char)(Math.random()*26+'A');
                          //随机产生20个字符
            theStack.push(c); //把字符入栈
            System.out.println("Produced: "+c); //打印字符
            try{
            Thread.sleep((int)(Math.random()*1000));
                     /*每产生一个字符线程就睡眠*/
            }catch(InterruptedException e){}
          }
       }
     }
   


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

Java线程:线程栈模型与线程的变量

 
SCJP5学习笔记
 
要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型。
线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶。线程栈的内容是随着程序的运行动态变化的,因此研究线程栈必须选择一个运行的时刻(实际上指代码运行到什么地方)。
 
下面通过一个示例性的 ......

java 开发

 本项目用到的技术是ssh,ajax框架dwr,工作流等
遇到的问题是业务流程不熟悉,技术上和团队成员有些差距(但我相信自己会完成任务)
sql语句的编写
思路问题,只要有思路,就会有方法,做软件也需要奇思妙想啊哈哈;
开发过程也是不断学习的过程;
最近遇到了一个session和database不同步的问题,解决的方法是将 ......

Java数据压缩格式程序设计方法之JAR压缩格式

1、JAR格式文件介绍
在JDK1.1版中,定义了用于将与Java应用程序相关的多个文件以及相关资源整合在一起的数据文件类型-JAR。也许读者会注意到:Sun以及其它公司发布的多种类型Java库都是以JAR形式进行文件压缩和封装的。
从本质上讲,JAR压缩文件采用ZIP格式进行数据压缩。由于最初引入JAR数据压缩类型的目的在于将开发完 ......

JAVA自学路线图

 
JAVA自学路线图
  
JAVA自学之路 二:JAVA自学路线图
[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_1.html]
有不少的同学发信给我,和我探讨java的自学过程应该是什么样的,毕竟有很多人因为各种各样的原因不能参加培训。我试着给出自己的见解,抛砖引玉吧。
这个路线图是给那些为了就业 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号