设为首页 加入收藏

TOP

Java中线程通信的机制
2014-11-24 02:43:26 来源: 作者: 【 】 浏览:25
Tags:Java 线程 通信 机制

  package org.jaychang.corejava.review;


  import java.util.LinkedList;


  import java.util.List;


  /**


  *


  * @author Jay Chang


  *


  */


  class Stack {


  private List list = new LinkedList();


  /**


  * 出栈


  *


  * @return


  */


  public Object pop() {


  return list.remove(list.size() - 1);


  }


  /**


  * 将元素压入栈


  *


  * @param obj


  */


  public void push(Object obj) {


  list.add(list.size(), obj);


  }


  public int size() {


  return list.size();


  }


  }


  /**


  *


  * @author Jay Chang


  *


  */


  class Producer extends Thread {


  private Stack stack;


  public Stack getStack() {


  return stack;


  }


  /**


  *


  * @param stack


  */


  public void setStack(Stack stack) {


  this.stack = stack;


  }


  /**


  * 生产者生产商品,当商品栈满时,通知消费者消费商品


  */


  public void produce() {


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


  // 同步stack


  synchronized (stack) {


  System.out.println("producer get the lock");


  //这里指定存放商品的商品栈的最大容量为10


  while (stack.size() == 10) {


  try {


  //将生产者线程持有stack对象的锁释放,并将生产者线程放到stack对象的等待池中


  stack.wait();


  } catch (InterruptedException e) {


  e.printStackTrace();


  }


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux Shell 脚本 下一篇Java中精确计算的一个类BigDecimal

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: