用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 {
相关文档:
l组件从功能上分可分为:
1) 顶层容器:JFrame,JApplet,JDialog,JWindow
2) 中间容器:JPanel,JScrollPane,JSplitPane,JToolBar
3) 特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane.
1.JFrame的用法
1) 用getContentPane( )方法获得JFrame的 ......
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 ......
第一章:java对象持久化技术概述
1:持久化:persistence;对象持久化包含两方面的内容:将内存数据存入长期记忆介质并能从这些介质上无差错地复原到内存。
2:通过实现java.io包中的Serializable接口(即对象序列化和饭序列化技术)实现,这种技术很重要,虽然在执行持久化时有极大的限制,如:效率低下、不支持事务等 ......
Closing a URLClassLoader
By Michael McMahon
Complex Java programs, such as application servers, sometimes create their own class loaders using the URLClassLoader type. With URLClassLoader, applications can load classes and resources from a search path of URLs. The following URL types are ......
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.meth ......