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
{
&
相关文档:
最近运行程序,老是遇到内存溢出的问题,Out of Memory(系统内存不足)的异常。仔细查资料,好好学习了一下虚拟机的几只,才知道,这是因为Java虚拟机默认分配的内存只有64M,如果应用的比较大,超出了64M,Java虚拟机就会抛出OutOfMemoryError,并停止运行。所以, ......
java心得!--很好的java学习历程(转自张国宝) 收藏 此文于2009-10-26被推荐到CSDN首页
如何被推荐?
1. 数组有没有length()这个方法? String有没有length()这个方法?
答:数组没有length()这个方法,有length的属性。
......
Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行
一次分析,归类,理清不同方法之间的异同点。
一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的。
InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似 ......
1.JVM的gc概述
gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。
在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的 ......
/*当执行SQL时发现不能连接数据库,先重连一次*/
import java.io.FileInputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
......