初级问题,高手解答 vetor是个容器,能把不同的对象放在里面,可象数组一样操作。synchronized 关键字锁定对象。对象是在 synchronized 代码内部被锁定的,要调用里面的对象,就必须一个一个排着队进行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现在的java书泛滥其实好的没有。全是天下文章一大抄。呵呵vector是一个可变长的数组。synchronized是一个同步机制。 class Pizza{ private int pizzaNum; public Pizza(int num) { this.pizzaNum = num; } public synchronized void produce() { while (pizzaNum >= 10) { try { wait(); } catch (Exception e) {} } pizzaNum++; System.out.println("Produce a new pizza, current pizza num: "+pizzaNum); notifyAll(); try { Thread.sleep(1000); } catch(Exception e){} } public synchronized void consume() { while (pizzaNum <= 0) { try { wait(); } catch (Exception e) {} } pizzaNum--; notifyAll(); System.out.println("Consume a pizza, current pizza num: "+pizzaNum); try { Thread.sleep(1000); } catch(Exception e){} }};class Cooker extends Thread{ Pizza p; public Cooker(Pizza p) { this.p = p; this.setPriority(10); this.start(); } public void run() { while (true) { p.produce(); } }};class Consumer extends Thread{ Pizza p; public Consumer(Pizza p) { this.p = p; this.start(); } public void run() { while (true) { p.consume(); } }};class DemoPizzaStore { public static void main(String[] args) { Pizza p = new Pizza(0); Cooker p1 = new Cooker(p); Cooker p2 = new Cooker(p); Consumer c1 = new Consumer(p); Consumer c2 = new Consumer(p); Consumer c3 = new Consumer(p); }} <<thinking in java>>,jdk文档,自选一本。 上边我发的关于synchronized的程序是同步的典型程序,操作系统里也讲过。下边是vector的用法:package store.util;import java.util.*;public class ShoppingCart{ private Vector cart; public ShoppingCart() { cart = new Vector(2,2); } public Item getItem(int i) { return (Item)cart.get(i); } public void addItem(Item item) { cart.add(item); } public int getSize() { return cart.size(); }} 非常感谢大家,特别是lahu0578,马上送分 哦。差点忘了,lahu0578你有关于这个问题的具体文档么,或者推荐给小弟几本好书。我想好好研究一下它们的用法。我还只是个初学者。 我把贴结了,希望你看到后加我为好友。我的qq是7143324邮箱:[email protected]谢谢了。:) FileWriter怎么写入换行? 问一个继承,复载的问题 求查找替换算法 怎么用JAVA写键盘监听程序 又被简单的问题卡住了,谁来帮帮我吧 用java.util.logging记录到文件中多了很多信息 tomcat下的应用在考到weblogic 下报错 如何模拟键盘发出一个ESC键按下的动作 下星期就要给公司作个java培训,真是不知道怎么下手了!有作过的吗,可以给我发些资料吗? 在windows环境下,如何在Java程序中访问autoexec.bat所设置的环境变量的值? 150分求解:菜单被其它控件遮盖的问题 如何取得int的各bit值
vector是一个可变长的数组。synchronized是一个同步机制。
{
private int pizzaNum; public Pizza(int num)
{
this.pizzaNum = num;
} public synchronized void produce()
{
while (pizzaNum >= 10)
{
try
{
wait();
}
catch (Exception e) {}
}
pizzaNum++;
System.out.println("Produce a new pizza, current pizza num: "+pizzaNum);
notifyAll();
try
{
Thread.sleep(1000);
}
catch(Exception e){}
}
public synchronized void consume()
{
while (pizzaNum <= 0)
{
try
{
wait();
}
catch (Exception e) {}
}
pizzaNum--;
notifyAll();
System.out.println("Consume a pizza, current pizza num: "+pizzaNum);
try
{
Thread.sleep(1000);
}
catch(Exception e){}
}
};class Cooker extends Thread
{
Pizza p;
public Cooker(Pizza p)
{
this.p = p;
this.setPriority(10);
this.start();
}
public void run()
{
while (true)
{
p.produce();
}
}
};
class Consumer extends Thread
{
Pizza p;
public Consumer(Pizza p)
{
this.p = p;
this.start();
}
public void run()
{
while (true)
{
p.consume();
}
}
};class DemoPizzaStore
{
public static void main(String[] args)
{
Pizza p = new Pizza(0);
Cooker p1 = new Cooker(p);
Cooker p2 = new Cooker(p);
Consumer c1 = new Consumer(p);
Consumer c2 = new Consumer(p);
Consumer c3 = new Consumer(p);
}
}
下边是vector的用法:
package store.util;import java.util.*;public class ShoppingCart
{
private Vector cart; public ShoppingCart()
{
cart = new Vector(2,2);
} public Item getItem(int i)
{
return (Item)cart.get(i);
} public void addItem(Item item)
{
cart.add(item);
} public int getSize()
{
return cart.size();
}
}
我的qq是7143324
邮箱:[email protected]
谢谢了。:)