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

📄 pool.java

📁 用JAVA写的shell程序
💻 JAVA
字号:
// JShell// Copyright (C) 2000 Jack A. Orenstein// // This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License as// published by the Free Software Foundation; either version 2 of// the License, or (at your option) any later version.// // This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU// General Public License for more details.// // You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA// 02111-1307, USA.// // Jack A. Orenstein  jao@mediaone.netpackage jshell.util;import java.util.*;/* * This implementation does not check that an object passed to putBack * was originally handed out by take. It would be nice to fix this. */public class Pool{    public Pool(String name,                ElementFactory factory)    {        _name = name;        _factory = factory;    }    public synchronized Element take()    {        if (_available.size() == 0)        {            Element element = _factory.create();            element.pool(this);            _available.addElement(element);        }        Element element = (Element) _available.lastElement();        Assertion.check(element.pool() == this);        Assertion.check(element.okToLeavePool());        _available.removeElementAt(_available.size() - 1);        return element;    }    public synchronized void putBack(Element element)    {        Assertion.check(element.pool() == this);        Assertion.check(element.okToEnterPool());        _available.addElement(element);    }    private String _name;    private ElementFactory _factory;    private Vector _available = new Vector();    //------------------------------------------------------------    public abstract static class ElementFactory    {        public abstract Element create();    }    //------------------------------------------------------------    public interface Element    {        boolean okToLeavePool();        boolean okToEnterPool();        Pool pool();        void pool(Pool pool);    }}

⌨️ 快捷键说明

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