a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 106|回复: 0

[JAVA] JAVA基础知识:生产者与消费者(1)

[复制链接]
发表于 2012-7-31 22:04:26 | 显示全部楼层 |阅读模式
模拟生产者与消费者实例,生产者生产一个产品,消费者就消费一个产品 ,然后生产者再生产,消费者再消费   ***********************核心方法类****************
0 Y, j" f" A3 T8 q- f" {/ A; B  package test.com;6 l) h" \5 ^1 ?7 k: V8 d. k& Z7 G
  class Queue
) U' O  B0 j9 A, A% x  // key# T" g+ {0 Z" V6 p
  {
7 s! a* K- o3 x& m+ n! J  int value;* U  v& v- A) T1 z( D! Q
  boolean bFull = false;) [9 F* A3 u, |* d, i& q" H: j
  public synchronized void put(int i) {2 F% @( B; D0 v7 _0 @7 y
  if (!bFull) {* k/ a! z' R2 Z7 t4 ^
  value = i;7 v4 }& v+ k( X# N2 I" b
  bFull = true;
5 t1 x8 |1 b9 S$ V1 ]$ s  notify();// 必须用在synchronized
6 ]* P5 D- v9 l  z, a3 F3 L8 o  }8 |9 _* j, q0 x. L
  try {
* f; B$ C! a; _  wait();// 必须捕获异常
8 s2 n* k' k# `7 {! o  } catch (InterruptedException e) {  D5 x4 A1 z1 H- w
  // TODO Auto-generated catch block: v+ V! B2 {( M/ `, j  Y$ o
  e.printStackTrace();2 N$ E2 U- _" P* G" R
  }
9 \7 }) y' X8 O+ S3 h9 W( f, L0 w  }9 J' C5 v3 I* v2 R2 q4 ?7 y
  public synchronized int get() {
6 U$ l( h+ M2 x) p; b  if (!bFull)( y6 V; w  x& f1 r1 ]
  try {, O+ o6 m0 B( O' k. N
  wait();//进入6 X3 y$ B. ], }. ]. l5 L2 T
  } catch (InterruptedException e) {
" l2 \- D! M4 k) I# Q  // TODO Auto-generated catch block
* Y5 c! g$ x6 O* W6 j: h- g- O7 [# d  e.printStackTrace();$ U% J& N$ F% o5 ^, j0 M1 Z6 |3 v, A
  }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-3 07:02 , Processed in 0.185125 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表