用JAVA实现多线程(生产者与消费者问题)
public class MultiThread {
public static void main(String[] args) {
ProductStack box = new ProductStack("box");
Producer p1 = new Producer(box, "p1");
Producer p2 = new Producer(box, "p2");
Producer p3 = new Producer(box, "p3");
Consumer c1 = new Consumer(box, "c1");
Consumer c2 = new Consumer(box, "c2");
//Consumer c3=new Consumer(box,"c3");
//Consumer c4=new Consumer(box,"c4");
//Consumer c5=new Consumer(box,"c5");
p1.start();
p2.start();
p3.start();
c1.start();
c2.start();
//c3.start();
//c4.start();
// c5.start();
}
}
class Product {
int id;
public Product(int id) {
this.id = id;
}
public String toSring() {
return "Product" + id;
}
}
class ProductStack {
String name;
static int point = 0;
private Product[] p = new Product[10];
public ProductStack(String name) {
this.name = name;
}
public String getname() {
return name;
}
public synchronized int getpoint() {
return point;
}
public synchronized void push(Product a) {
while (point >= p.length) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
this.notifyAll();
}
p[point] = a;
// System.out.println(point);
// System.out.println(p[point].toSring());
point++;
// yield();
}
private void yield() {
}
public synchronized Product pop() {
while (point == 0) {
try {
相关文档:
package com.huawei.globe;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class CrossConectionContextSheet
{
CrossCalition cc = new CrossCalition();
&nbs ......
package com.kiloway.trace.utils;
import java.lang.reflect.Field;
/**
* @author Zhang Qi
* @Create Time 2010/01/09
* */
public class ObjectToXML {
public String toString(Object object) throws Exception {
StringBuilder sb = new StringBuilder();
//得到类的名称
String classname = obj ......
1、 对象的初始化
(1) 非静态对象的初始化
在创建对象时,对象所在类的所有数据成员会首先进行初始化。
基本类型:int型,初始化为0。
如果为对象:这些对象会按顺序初始化。
※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。
构造方法的作用就是初始化。
(2) 静态对象的初始化
程序中主类的 ......
通过 DAOFactory 的泛型写法来演示Java泛型的特殊用法
小型项目中常常都没有用三方持久化框架,而大都是用公司或自行依据DAO模式封装的一些组件来完成数据库持久化动作,并且,通常为了更具可扩展性,常常使用抽象工厂模式来解耦合。
一、先看代码
1、简单工厂代码
/************************************************* ......
最近班里的同学都忙着报班,有个达内是java培训,有个深蓝是C++培训,网上看了些帖子说什么的都有,自我感觉培养一个C++程序员的周期要比培养一个jAVA程序员的周期长很多,当然,C++要是学的好的话肯定比学java的牛,但是付出的代价个人认为是有很大差距的。对于现在市场上对于语言的需求也 ......