Java多线程的相关机制

来源:java认证发布时间:2012-11-12 13:15:39java认证视频

  /**

  * 产品盒对象

  * @author johnston678

  */

  class ProductBox {

  Product[] productbox = new Product[6];

  int index = 0;

  public ProductBox() {

  super();

  }

  public synchronized void push(Product p) {

  while (index == productbox.length) {

  try {

  this.wait();

  } catch (InterruptedException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  }

  this.notify();

  productbox[index] = p;

  index ++;

  }

  public synchronized Product pop() {

  while (index == 0) {

  try {

  this.wait();

  } catch (InterruptedException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  }

  this.notify();

  index --;

  return productbox[index];

  }

  }

  /**

  * 生产者

  * @author johnston678

  */

  class Producer implements Runnable {

  ProductBox productbox = null;

  public Producer(ProductBox productbox) {

  super();

  this.productbox = productbox;

  }

  @Override

  public void run() {

  // TODO Auto-generated method stub

  for (int i=0; i<10; i++) {

  Product p = new Product(i);

  productbox.push(p);

  System.out.println("produce:" + p);

  try {

  Thread.sleep((int)(Math.random() * 200));

  } catch (InterruptedException e) {

  e.printStackTrace();

  }

  }

  }

  }

  /**

  * 消费者

  * @author johnston678

  */

  class Consumer implements Runnable {

  ProductBox productbox = null;

  public Consumer(ProductBox productbox) {

  super();

  this.productbox = productbox;

  }

  @Override

  public void run() {

  // TODO Auto-generated method stub

  for (int i=0; i<10; i++) {

  Product p = productbox.pop();

  System.out.println("consume:" + p);

  try {

  Thread.sleep((int)(Math.random() * 1000));

  } catch (InterruptedException e) {

  e.printStackTrace();

  }

  }

  }

  }

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答