basket.java

来自「用NETBEANS做的一个关于Java的小小的demo.大家赐教」· Java 代码 · 共 70 行

JAVA
70
字号
/*
 * Basket.java
 *
 * Created on 2007年9月21日, 上午12:16
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package producer_consumer_14;

/**
 *
 * @author Administrator
 */
public class Basket implements Runnable{
    public boolean available = false;
    public Object obj = new Object();
    
    /** Creates a new instance of Basket */
    public Basket() {
    }
    
    public void run() {
    }
    
    public void produce(){
        synchronized(obj){
            try {
                if(available){
                    obj.wait();
                }
                Thread.sleep(1);
                System.out.println("apple produced");
                obj.notify();
                available = true;
                
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }
    
    public  void consume(){
        synchronized(obj){
            try {
                if(!available){
                    obj.wait();
                }
                Thread.sleep(1);
                System.out.println("apple consumed");
                available = false;
                obj.notify();
                
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }
    
    public static void main(String[] args) {
        Basket basket = new Basket();
        for(int i = 0; i < 10; i++){
            (new Thread(new Producer(basket))).start();
            (new Thread(new Consumer(basket))).start();
        }
    }
    
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?