Java多线程 生产者消费者问题 (2)
一个使用了队列的通用实现:
http://blog.csdn.net/chaosllgao/archive/2009/05/23/4211183.aspx
此文描述了一种更简单的模型
1. 同时只有1个生产者和1个消费者
2. 不用队列,同时只有一个产品
3. 生产者每次生产1个0到100之间的随机数,消费者则把该随机数打印出来。如果产生的随机数为0,则生产者、消费者均退出运行
import java.util.Random;
public class ProducerConsumer
{
public static void main(String[] args)
{
Product product = new Product();
Producer producer = new Producer(product);
Consumer consumer = new Consumer(product);
producer.start();
consumer.start();
}
private static class Product
{
public int value = -1;
}
private static class Producer extends Thread
{
private Product product = null;
public Producer(Product product)
{
this.product = product;
}
public void run()
{
Random rand = new Random();
while (true)
{
try
{
&
相关文档:
Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行
一次分析,归类,理清不同方法之间的异同点。
一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的。
InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似 ......
5.如何从JVM中获取信息来进行调整
-verbose.gc开关可显示gc的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等。打开- xx:+ printgcdetails开关,可以详细了解gc中的变化。打开-XX: + PrintGCTimeStamps开关,可以了解这些垃圾收集发生的时间,自jvm启动以后以 ......
像移动网关一样,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- ......
1. 你需要精通面向对象分析与设计(OOAOOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是class、object、interaction以及statediagrams. 2. 你需要学习Java语言的基础知识以及它的核心类库(collections、serialization、streams、networking、multithreading、reflection、event、handling、N ......