锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美久久久久久,亚洲最快最全在线视频,国产永久精品大片wwwapphttp://m.shnenglu.com/misschuer/category/21096.htmlzh-cnMon, 18 May 2015 10:57:15 GMTMon, 18 May 2015 10:57:15 GMT60瀵硅薄姹?濂楃敤浜嗙綉涓婄殑涓涓湁BUG浠g爜 鑷繁琛ュ厖鐨?娌″疄闄呯敤榪?http://m.shnenglu.com/misschuer/archive/2015/05/18/210686.html姝ゆ渶鐩告?/dc:creator>姝ゆ渶鐩告?/author>Mon, 18 May 2015 10:49:00 GMThttp://m.shnenglu.com/misschuer/archive/2015/05/18/210686.htmlhttp://m.shnenglu.com/misschuer/comments/210686.htmlhttp://m.shnenglu.com/misschuer/archive/2015/05/18/210686.html#Feedback0http://m.shnenglu.com/misschuer/comments/commentRss/210686.htmlhttp://m.shnenglu.com/misschuer/services/trackbacks/210686.htmlimport java.util.Enumeration;
import java.util.Vector;

public class ObjectPool {

    private static final boolean PRINTABLE = true;
    private Class<?> clazz = null;
    private int numObjects = 10;
    private int maxObjects = 50;
    private Vector<PooledObject> objects = null;
    
    public static void main(String[] args) throws Exception {

        ObjectPool pool = new ObjectPool(XX.class);
        pool.createPool();
        
        XX xx = (XX) pool.getObject();
        xx.reset();
        xx.setAge(1);
        xx.setSex("M");
        
        pool.returnObject(xx);
        pool.closeObjectPool();
    }
    
    
    public ObjectPool(Class<?> clazz) {
        
        this.clazz = clazz;
    }
    
    public synchronized void createPool() throws Exception {
        
        if (this.objects != null)
            return;
        
        this.objects = new Vector<PooledObject>();
        for (int i = 0; i < this.numObjects; ++ i) {
            
            createObjects();
        }
    }
    
    
    public synchronized Object getObject() throws Exception {
        
        if (this.objects == null)
            return null;
        
        Object conn = this.getFreeObject();
        
        while (conn == null) {
            wait(250);
            conn = this.getFreeObject();
        }
        
        return conn;
    }
    
    
    private Object getFreeObject() throws Exception {
        
        Object obj = this.findFreeObject();
        
        if (obj == null) {
            
            this.createObjects();
            obj = this.findFreeObject();
            if (obj == null) {
                
                return null;
            }
        }
        
        return obj;
    }
    
    private void createObjects() throws Exception {
        
        if (this.objects.size() < this.maxObjects) {
            
            this.message("created" + this.objects.size());
            Object obj = this.clazz.newInstance();
            this.objects.addElement(new PooledObject(this.objects.size(), obj));
        }
    }
    
    
    private Object findFreeObject() {
        
        this.message("before free:--------");
        this.print();
        Object obj = null;
        PooledObject pooledObject = null;
        Enumeration<PooledObject> enumerate = objects.elements();
        while (enumerate.hasMoreElements()) {
            
            pooledObject = (PooledObject) enumerate.nextElement();
            if (!pooledObject.isBusy()) {
                
                pooledObject.setBusy(true);
                obj = pooledObject.getObject();
                this.message("free object");
                break;
            }
        }
        
        this.message("after free:--------");
        this.print();
        
        return obj;
    }
    
    
    public void returnObject(Object obj) {
        
        if (this.objects == null)
            return;
        
        this.message("before return:--------");
        this.print();
        PooledObject pooledObject = null;
        Enumeration<PooledObject> enumerate = objects.elements();
        while (enumerate.hasMoreElements()) {
            
            pooledObject = (PooledObject) enumerate.nextElement();
            if (obj == pooledObject.getObject()) {
                
                pooledObject.setBusy(false);
                this.message("return object");
                break;
            }
        }
        this.message("after return:--------");
        this.print();
    }
    
    
    public synchronized void closeObjectPool() {
        
        if (this.objects == null)
            return;
        
        PooledObject pooledObject = null;
        Enumeration<PooledObject> enumerate = objects.elements();
        while (enumerate.hasMoreElements()) {
            
            pooledObject = (PooledObject) enumerate.nextElement();
            this.message(pooledObject.toString());
            if (pooledObject.isBusy()) {
                this.message("wait 5000");
                wait(5000);
            }
        }

        this.objects.clear();
        this.objects = null;
    }
    
    
    private void wait(int millionSeconds) {
        
        try {
            Thread.sleep(millionSeconds);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    
    
    public void print() {
        
        Enumeration<PooledObject> enumerate = objects.elements();
        while (enumerate.hasMoreElements()) {
            
            PooledObject pooledObject = (PooledObject) enumerate.nextElement();
            this.message(pooledObject.toString());
        }
        
        this.message("print end==============================");
    }
    
    
    public void message(String msg) {
        
        if (PRINTABLE) {
            System.out.println(msg);
        }
    }
    
    
    class PooledObject {     
        
        private int index = 0;
        Object objection = null;// 瀵硅薄     
        boolean busy = false// 姝ゅ璞℃槸鍚︽鍦ㄤ嬌鐢ㄧ殑鏍囧織錛岄粯璁ゆ病鏈夋鍦ㄤ嬌鐢?nbsp;    

        
// 鏋勯犲嚱鏁幫紝鏍規嵁涓涓?nbsp;Object 鏋勫憡涓涓?nbsp;PooledObject 瀵硅薄     
        public PooledObject(int index, Object objection) {     

            this.index = index;
            this.objection = objection;
            this.busy = false;
        }     

        // 榪斿洖姝ゅ璞′腑鐨勫璞?nbsp;    
        public Object getObject() {     
            return objection;     
        }     

        // 璁劇疆姝ゅ璞$殑錛屽璞?nbsp;    
        public void setObject(Object objection) {     
            this.objection = objection;     

        }     

        // 鑾峰緱瀵硅薄瀵硅薄鏄惁蹇?nbsp;    
        public boolean isBusy() {     
            return busy;     
        }     

        // 璁劇疆瀵硅薄鐨勫璞℃鍦ㄥ繖     
        public void setBusy(boolean busy) {     
            this.busy = busy;     
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }
        
        @Override
        public String toString() {
            
            return String.format("[PooledObject] index:%d, busy:%b", this.index, this.busy);
        }
    } 
}


class XX {
    
    private int age = 0;
    private String sex = "";
    
    public XX() {
        
    }
    
    public void reset() {
        
        this.age = 0;
        this.sex = "";
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

]]>
centos涓婅繍琛宩nihttp://m.shnenglu.com/misschuer/archive/2015/05/07/210572.html姝ゆ渶鐩告?/dc:creator>姝ゆ渶鐩告?/author>Thu, 07 May 2015 09:14:00 GMThttp://m.shnenglu.com/misschuer/archive/2015/05/07/210572.htmlhttp://m.shnenglu.com/misschuer/comments/210572.htmlhttp://m.shnenglu.com/misschuer/archive/2015/05/07/210572.html#Feedback0http://m.shnenglu.com/misschuer/comments/commentRss/210572.htmlhttp://m.shnenglu.com/misschuer/services/trackbacks/210572.htmlimport java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.StringTokenizer;


public class Test {

    public static native void hello();
        static final String LIBFILENAME = "/home/my/java/libtest.so";

    static {
        //System.loadLibrary(LIBFILENAME);

        try {
            // 鑾峰彇鍒癹ava.library.path  鍙婄郴緇熷彉閲忎腑Path涓殑鍐呭
            String libpath = System.getProperty("java.library.path");
            if (libpath == null || libpath.length() == 0) {
                throw new RuntimeException("java.library.path is null");
            }
            //javaBinPath   jdk鐨刡in鐩綍D:\Program Files\Java\jdk1.6.0_11\bin
            String javaBinPath = null;
            StringTokenizer st = new StringTokenizer(libpath,
                    System.getProperty("path.separator"));
            if (st.hasMoreElements()) {
                javaBinPath = st.nextToken();
            } else {
                throw new RuntimeException("can not split library path:"
                        + libpath);
            }
            // 鎶奷ll鏂囦歡鍐欏叆鍒癹ava.library.path涓dll鏀懼湪ConvertWord2HM鐩稿悓鐩綍涓嬶紝榪欎釜鍙互鏄綘鐨勭被鍚?/span>
            InputStream inputStream = Test.class.getResourceAsStream(
                    LIBFILENAME);
            final File dllFile = new File(LIBFILENAME);
            if (!dllFile.exists()) {
                FileOutputStream outputStream = new FileOutputStream(dllFile);
                byte[] array = new byte[1024];
                int bytesRead = -1;
                while ((bytesRead = inputStream.read(array)) != -1) {
                    outputStream.write(array, 0, bytesRead);
                }
                outputStream.flush();
                outputStream.close();
            }  
            // 鍔ㄦ佸姞杞絛ll
            System.load(dllFile.getPath());
            // 鍦ㄨ櫄鎷熸満鍏抽棴鐨勬椂鍊欏垹闄ll 榪欓噷鐪嬬潃鐢ㄥ惂
            // dllFile.deleteOnExit();
        } catch (Throwable e) {
            throw new RuntimeException("load Convert.dll error!", e);
        }

    }
    public static void main(String[] args) {
        Test.hello();
    }
}


榪欎釜鏂囦歡鏄湪鐩綍/home/my/java涓嬬殑
javac Test.java
javah Test  //鐢熸垚Test.h
鐒跺悗鑷繁鍐橳est.cpp
.java .h .cpp 榪欎簺鏂囦歡鍚嶅瓧涓瀹氳涓鏍?br />
g++ -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -fPIC -shared -o libtest.so Test.cpp  // 杞垚浣犳兂瑕佺殑鏂囦歡 鎴戣繖閲屾槸libtest.so 涔熷彲浠ユ槸libtest.dll, 鐪嬩綘浠g爜璋冪敤浠涔堛?br />java Test 灝卞彲浠ヨ繍琛屼簡
鐢⊿ystem.loadLibrary() 涓鐩村姞杞戒笉浜?鍙兘緗戜笂鎵句簡涓姞杞絣ib鐨勪唬鐮?/div>


]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一二三视频| 老司机精品视频一区二区三区| 一区二区三区导航| 亚洲青涩在线| 亚洲国产天堂久久综合网| 亚洲国产另类精品专区| 日韩午夜在线视频| 亚洲免费中文字幕| 久久精品一区二区三区不卡| 久久午夜色播影院免费高清| 欧美高清视频www夜色资源网| 欧美精品在线观看播放| 国产精品拍天天在线| 狠狠色综合网| 一区二区三区成人精品| 欧美呦呦网站| 欧美国产视频日韩| a91a精品视频在线观看| 久久国产精品久久国产精品 | 一二三区精品福利视频| 亚洲欧美日本伦理| 欧美aa在线视频| 国产精品亚洲人在线观看| 伊人男人综合视频网| 亚洲一区二区三区四区中文| 美日韩免费视频| 中文网丁香综合网| 美女999久久久精品视频| 国产精品豆花视频| 91久久国产自产拍夜夜嗨| 性欧美大战久久久久久久免费观看| 美女在线一区二区| 亚洲欧美一区二区三区极速播放 | 欧美成人性网| 午夜国产精品视频| 欧美四级在线观看| 亚洲第一偷拍| 欧美在线观看你懂的| 亚洲日本成人| 噜噜爱69成人精品| 国产偷自视频区视频一区二区| 99精品国产在热久久婷婷| 美日韩丰满少妇在线观看| 亚洲欧美日本在线| 欧美性做爰毛片| 一本色道久久综合一区 | 亚洲最新合集| 欧美韩国一区| 久久久久这里只有精品| 国产欧美短视频| 亚洲女爱视频在线| 亚洲精品国产精品国自产观看浪潮 | 91久久精品一区| 女仆av观看一区| 久久免费精品日本久久中文字幕| 国产精品一区免费观看| 午夜精品av| 亚洲在线视频免费观看| 国产精品免费一区二区三区观看| 亚洲性夜色噜噜噜7777| 中日韩在线视频| 国产精品毛片| 久久经典综合| 久久久九九九九| 黄色日韩网站| 免费日韩av片| 欧美jizz19性欧美| 日韩午夜激情电影| 日韩一级在线观看| 国产精品久久夜| 欧美在线免费观看视频| 久久激情五月婷婷| 最新精品在线| 亚洲免费播放| 国产精品亚洲欧美| 久久午夜视频| 欧美极品一区| 亚洲欧美国产高清| 欧美一区二视频| 亚洲精品国产精品乱码不99| 亚洲精品乱码| 国产午夜精品一区二区三区欧美 | 国产精品99久久久久久久女警| 一本久道久久综合中文字幕| 国产精品国产a级| 久久只有精品| 欧美区日韩区| 久久精品成人| 欧美激情女人20p| 久久大综合网| 欧美成人午夜视频| 午夜亚洲福利在线老司机| 欧美一区二区成人| 亚洲免费精品| 欧美在线观看一二区| 亚洲美女91| 久久成人18免费观看| 一本久道久久综合中文字幕| 欧美资源在线| 亚洲一区二区三区欧美| 久久视频一区| 午夜精品短视频| 久久综合久久综合久久| 亚洲欧美日韩精品久久久久| 久久夜色精品国产亚洲aⅴ| 性做久久久久久| 国产综合一区二区| 亚洲美女区一区| 在线成人激情黄色| 一区二区三区成人| 99综合电影在线视频| 久久久av网站| 欧美一区二区三区视频免费| 欧美精品日韩一本| 欧美gay视频激情| 国产三级精品在线不卡| 亚洲午夜久久久久久尤物 | 国产精品久99| 亚洲日韩第九十九页| 尤妮丝一区二区裸体视频| 香蕉成人啪国产精品视频综合网| 一区二区三区高清视频在线观看| 久久人人看视频| 久久全球大尺度高清视频| 国产精品视频一区二区三区| 夜夜嗨av一区二区三区四区| 99精品视频免费全部在线| 欧美大片免费观看| 亚洲国产成人av在线| 亚洲国产精品高清久久久| 久久久91精品国产一区二区精品| 欧美在线一二三四区| 国产精品午夜国产小视频| 宅男噜噜噜66一区二区66| 亚洲天堂网在线观看| 欧美日韩在线另类| 99精品99| 午夜久久资源| 国产日韩专区| 久久久久久国产精品mv| 暖暖成人免费视频| 亚洲国产欧洲综合997久久| 久久综合99re88久久爱| 欧美国产精品一区| 日韩一二三在线视频播| 欧美午夜不卡视频| 亚洲一区二区三区四区五区黄| 久久福利影视| 亚洲国产精品999| 欧美精品激情在线| 一个色综合导航| 久久久国产精品一区| 亚洲电影成人| 欧美日韩午夜| 欧美亚洲视频在线观看| 美女精品视频一区| 日韩一区二区久久| 国产精品久久久久久久久久三级| 亚洲欧美美女| 免费观看成人| 一本一本久久| 国产啪精品视频| 久久久亚洲精品一区二区三区 | 久久不射2019中文字幕| 国产在线观看精品一区二区三区| 久久亚洲国产成人| 亚洲美女av网站| 久久精品亚洲精品国产欧美kt∨| 在线激情影院一区| 欧美午夜精品久久久久免费视| 久久免费99精品久久久久久| 久久影院午夜片一区| 国产一区二区三区在线观看精品 | 久久久亚洲影院你懂的| 91久久综合| 欧美一区二区三区视频免费播放| 在线成人黄色| 国产精品一区二区在线观看不卡| 久久中文字幕一区二区三区| 一区二区三区偷拍| 欧美成ee人免费视频| 亚洲综合不卡| 亚洲日韩视频| 国内自拍一区| 国产精品乱人伦一区二区| 免费精品视频| 欧美影片第一页| 亚洲视频精选在线| 亚洲国产精品一区二区久 | 宅男精品视频| 亚洲国产人成综合网站| 国产女人精品视频| 欧美日韩一区免费| 美女视频黄a大片欧美| 午夜精品福利在线| 亚洲视频专区在线| 日韩午夜激情av| 91久久精品美女| 欧美国产极速在线| 欧美成人激情在线|