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

Java多线程: 生产者消费者问题(源码)

有人反映看不到源码,发现是CSDN的代码控件有问题。希望CSDN好好改进一下。
暂时先以文本方式发布出来,格式会变样。
import java.util.LinkedList;
public class ProducerConsumer
{
 /**
  * @param args
  */
 public static void main(String[] args)
 {
  Queue queue = new Queue();
  
  Producer producer1 = new Producer(queue, "producer1");
  Producer producer2 = new Producer(queue, "producer2");
  
  Consumer consumer1 = new Consumer(queue, "consumer1");
  Consumer consumer2 = new Consumer(queue, "consumer2");
  Consumer consumer3 = new Consumer(queue, "consumer3");
  
  producer1.start();
  producer2.start();
  consumer1.start();
  consumer2.start();
  consumer3.start();
 }
}
class Message
{
 public static int sno = 0;
 
 public int id = 0;
 
 public String content = null;
 
 public Message(String content)
 {
  synchronized(Message.class)
  {
   this.id = ++sno;
  }  
  this.content = content;
 }
 public String toString()
 {
  return "id = " + id + ", content = " + content;
 }
}
class Queue
{
 private LinkedList queue = null;
 private int capacity = 0;
 
 public Queue(int capacity)
 {
  this.capacity = capacity;
  queue = new LinkedList();
 }
 public Queue()
 {
  this(10);
 }
 
 public synchronized void put(Message product)
 {
  //wait until the consumer has consume a product
  while(queue.size() >= capacity)
  {
   try
   {
    wait();
   }
   catch (InterruptedException e)
   {
  &


相关文档:

java心得!

 java心得!--很好的java学习历程(转自张国宝) 收藏 此文于2009-10-26被推荐到CSDN首页
如何被推荐?
1.    数组有没有length()这个方法? String有没有length()这个方法?
        答:数组没有length()这个方法,有length的属性。
     ......

保存java对象到数据库,并从数据库读出生成用户界面



向数据库保存对象,采用ObjectOutputStream向数据库直接写入
/**
 * Title: AF
 * Description: 向数据库中写入对象测试程序
 * Copyright: Copyright 2009 ufgov, Inc.
 * Compan ......

JVM详解之Java垃圾回收机制详解和调优 (2)

 3.Sun HotSpot
  1.4.1 JVM堆大小的调整
  Sun HotSpot 1.4.1使用分代收集器,它把堆分为三个主要的域:新域、旧域以及永久域。Jvm生成的所有新对象放在新域中。一旦对象经历了一定数量的垃圾收集循环后,便获得使用期并进入旧域。在永久域中jvm则存储class和method对象。就配置而言,永久域是一个独立域并且不 ......

*成为Java高手的25个学习要点*

 1. 你需要精通面向对象分析与设计(OOAOOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是class、object、interaction以及statediagrams.   2. 你需要学习Java语言的基础知识以及它的核心类库(collections、serialization、streams、networking、multithreading、reflection、event、handling、N ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号