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)
   {
  &
    
     
	
	
    
    
	相关文档:
        
    
              最近运行程序,老是遇到内存溢出的问题,Out of Memory(系统内存不足)的异常。仔细查资料,好好学习了一下虚拟机的几只,才知道,这是因为Java虚拟机默认分配的内存只有64M,如果应用的比较大,超出了64M,Java虚拟机就会抛出OutOfMemoryError,并停止运行。所以, ......
	
    
        
    
     java心得!--很好的java学习历程(转自张国宝) 收藏 此文于2009-10-26被推荐到CSDN首页
如何被推荐?
1.    数组有没有length()这个方法? String有没有length()这个方法?
        答:数组没有length()这个方法,有length的属性。
     ......
	
    
        
    
     jdk提供了Zip相关的类方便的实现压缩和解压缩。使用方法很简单。下边分别是压缩和解压缩的简单事例
1、压缩的
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipE ......
	
    
        
    
     1.JVM的gc概述
  gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。
  在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的 ......
	
    
        
    
     像移动网关一样,iisforward这个ISAPI过滤器也会对request对象进行再包装,附加一些WLS要用的头信息。这种情况下,直接用request.getRemoteAddr()是无法取到真正的客户IP的。
实际的iisforward附加头如下: 
WL-Proxy-Client-IP=211.161.1.239
Proxy-Client-IP=211.161.1.239
X-Forwarded-For=211.161.1.239
WL- ......