⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basket.java

📁 用NETBEANS做的一个关于Java的小小的demo.大家赐教
💻 JAVA
字号:
/*
 * Basket.java
 *
 * Created on 2007年9月14日, 上午10:44
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package product_consumer;

import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/**
 *
 * @author Administrator
 */


public class Basket {
    Lock lock = new ReentrantLock();
//产生Condition对象
    Condition produced = lock.newCondition();
    Condition consumed = lock.newCondition();
    boolean available = false;
    
    public void produce() throws InterruptedException {
        lock.lock();
        try {
            if(available){
                consumed.await(); //放弃lock进入睡眠
            }
            /*生产苹果*/
            System.out.println("Apple produced.");
            available = true;
            produced.signal(); //发信号唤醒等待这个Condition的线程
        } finally {
            lock.unlock();
        }
    }
    
    public void consume() throws InterruptedException {
        lock.lock();
        try {
            if(!available){
                produced.await();//放弃lock进入睡眠
            }
            /*吃苹果*/
            System.out.println("Apple consumed.");
            available = false;
            consumed.signal();//发信号唤醒等待这个Condition的线程
        } finally {
            lock.unlock();
        }
    }
}



⌨️ 快捷键说明

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