亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lockmanager.java

?? 分布式數據庫原形代碼 可以支持個用戶同時登陸到數據庫中查詢需要的資源
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package lockmgr;import java.util.BitSet;import java.util.Vector;/** * Implements a Lock Manager.  Each Resource Manager creates one * instance of this class, to which all lock requests are directed. */public class LockManager{    /* Lock request type. */    public static final int READ = 0;    public static final int WRITE = 1;        /* A lock request is considered deadlocked after 10 sec. */    private static int DEADLOCK_TIMEOUT = 10000;    private static int TABLE_SIZE = 2039;    private static TPHashTable lockTable = new TPHashTable(TABLE_SIZE);    private static TPHashTable stampTable = new TPHashTable(TABLE_SIZE);    private static TPHashTable waitTable = new TPHashTable(TABLE_SIZE);    /**     * Each Resource Manager needs to construct one instance of the     * LockManager.     */    public LockManager() {        super();    }    /**     * Locks the data item identified by <tt>strData</tt> in mode     * <tt>lockType</tt> on behalf of the transaction with id     * <tt>xid</tt>. This is a blocking call; if the item is currently     * locked in a conflicting lock mode, the requesting thread will     * sleep until the lock becomes available or a deadlock is     * detected.     *      * @param xid Transaction Identifier, should be non-negative.     * @param strData identifies the data element to be locked; should be non-null.     * @param lockType one of LockManager.READ or LockManager.WRITE     * @return true if operation succeeded; false if not (due to invalid parameters).     *     * @throws DeadlockException if deadlock is detected (using a timeout)     */    public boolean lock(int xid, String strData, int lockType)	throws DeadlockException     {            // if any parameter is invalid, then return false        if (xid < 0) {             return false;        }                if (strData == null) {            return false;        }                if ((lockType != TrxnObj.READ) && (lockType != TrxnObj.WRITE)) {             return false;        }                // two objects in lock table for easy lookup.        TrxnObj trxnObj = new TrxnObj(xid, strData, lockType);        DataObj dataObj = new DataObj(xid, strData, lockType);                // return true when there is no lock conflict or throw a deadlock exception.        try {            boolean bConflict = true;            BitSet bConvert = new BitSet(1);            while (bConflict) {                synchronized (this.lockTable) {                    // check if this lock request conflicts with existing locks                    bConflict = lockConflict(dataObj, bConvert);                    if (!bConflict) {                        // no lock conflict                        synchronized (this.stampTable) {                            // remove the timestamp (if any) for this lock request                            TimeObj timeObj = new TimeObj(xid);                            this.stampTable.remove(timeObj);                        }                        synchronized (this.waitTable) {                            // remove the entry for this transaction from waitTable (if it                            // is there) as it has been granted its lock request                            WaitObj waitObj = new WaitObj(xid, strData, lockType);                            this.waitTable.remove(waitObj);                        }                                                 if (bConvert.get(0) == true) {                            // lock conversion                             // *** ADD CODE HERE *** to carry out the lock conversion in the                            // lock table			    System.out.print("Converting lock...");			    convertLockTableObj(trxnObj);			    convertLockTableObj(dataObj);			    System.out.println("done");			                            } else {                            // a lock request that is not lock conversion                            this.lockTable.add(trxnObj);                            this.lockTable.add(dataObj);                        }                    }                }                if (bConflict) {                    // lock conflict exists, wait                    waitLock(dataObj);                }            }        }         catch (DeadlockException deadlock) {            throw deadlock;        }        catch (RedundantLockRequestException redundantlockrequest) {              // just ignore the redundant lock request            return true;        }         return true;    }    /**     * Unlocks all data items locked on behalf of the transaction with     * id <tt>xid</tt>.     *      * @param xid Transaction Identifier, should be non-negative.     *      * @return true if the operation succeeded, false if not.     */     public boolean unlockAll(int xid) {        // if any parameter is invalid, then return false        if (xid < 0) {            return false;        }        TrxnObj trxnQueryObj = new TrxnObj(xid, "", -1);  // Only used in elements() call below.        synchronized (this.lockTable) {            Vector vect = this.lockTable.elements(trxnQueryObj);            TrxnObj trxnObj;            Vector waitVector;            WaitObj waitObj;            int size = vect.size();                                                            for (int i = (size - 1); i >= 0; i--) {                                trxnObj = (TrxnObj) vect.elementAt(i);                this.lockTable.remove(trxnObj);                DataObj dataObj = new DataObj(trxnObj.getXId(), trxnObj.getDataName(), trxnObj.getLockType());                this.lockTable.remove(dataObj);                                                        // check if there are any waiting transactions.                 synchronized (this.waitTable) {                    // get all the transactions waiting on this dataObj                    waitVector = this.waitTable.elements(dataObj);                    int waitSize = waitVector.size();                    for (int j = 0; j < waitSize; j++) {                        waitObj = (WaitObj) waitVector.elementAt(j);                        if (waitObj.getLockType() == LockManager.WRITE) {                            if (j == 0) {                                // get all other transactions which have locks on the                                // data item just unlocked.                                 Vector vect1 = this.lockTable.elements(dataObj);                                                                // remove interrupted thread from waitTable only if no                                // other transaction has locked this data item                                if (vect1.size () == 0) {                                    this.waitTable.remove(waitObj);                                                                             try {                                        synchronized (waitObj.getThread()) {                                            waitObj.getThread().notify();                                        }                                    }                                    catch (Exception e)    {                                        System.out.println("Exception on unlock\n" + e.getMessage());                                    }                                        }                                else {                                    // some other transaction still has a lock on                                    // the data item just unlocked. So, WRITE lock                                    // cannot be granted.                                    break;                                }                            }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品一区二区夜色| 偷拍日韩校园综合在线| 欧美精品自拍偷拍| 91极品美女在线| 欧美怡红院视频| 欧美午夜精品一区二区三区| 色婷婷av一区二区三区gif| 成人免费视频app| 97久久精品人人澡人人爽| av一二三不卡影片| 91在线国产福利| 色婷婷亚洲精品| 欧美三级日韩在线| 欧美老肥妇做.爰bbww视频| 欧美性感一类影片在线播放| 色诱亚洲精品久久久久久| 91成人免费在线| 欧美日韩国产欧美日美国产精品| 欧美日韩视频在线观看一区二区三区 | 91色九色蝌蚪| 日本高清视频一区二区| 欧美视频在线一区| 91精品国产91热久久久做人人| 日韩午夜在线观看视频| 久久久99免费| 1024精品合集| 日本欧美一区二区| 成人黄色一级视频| 欧洲中文字幕精品| 欧美一区日本一区韩国一区| 精品播放一区二区| 亚洲免费观看高清完整版在线观看熊 | 91浏览器打开| 精品视频在线免费| 久久久亚洲综合| 亚洲精品福利视频网站| 日韩avvvv在线播放| 国产剧情av麻豆香蕉精品| 色哟哟国产精品免费观看| 欧美日韩大陆在线| 国产视频一区在线观看| 亚洲国产色一区| 韩国欧美一区二区| 欧美日韩在线亚洲一区蜜芽| 精品粉嫩超白一线天av| 一区二区三区欧美亚洲| 国产成人高清视频| 欧美一三区三区四区免费在线看| 国产精品麻豆久久久| 青青草原综合久久大伊人精品| 成人高清免费观看| 欧美一区二区观看视频| 亚洲黄色免费电影| 福利视频网站一区二区三区| 日韩欧美亚洲国产另类| 一区二区视频免费在线观看| 国产高清精品网站| 欧美一级午夜免费电影| 亚洲小说欧美激情另类| 成人成人成人在线视频| 久久久99久久| 狠狠狠色丁香婷婷综合激情| 欧美精品三级日韩久久| 亚洲欧美韩国综合色| 成人性生交大片免费看中文| 久久一区二区视频| 久久国产尿小便嘘嘘| 884aa四虎影成人精品一区| 夜夜亚洲天天久久| 日本韩国欧美一区| 亚洲欧美日韩一区二区| 99久久综合国产精品| 国产精品久久久久影院| 欧美亚洲综合色| 亚洲欧美一区二区三区孕妇| 丁香婷婷综合色啪| 日本一区二区三区四区在线视频| 国内精品久久久久影院薰衣草| 日韩精品影音先锋| 激情综合网激情| 精品国一区二区三区| 精品一区二区三区久久| 26uuu另类欧美| 激情五月婷婷综合| 国产欧美一区二区在线| 国产成人在线色| 国产精品初高中害羞小美女文| 成人毛片在线观看| 亚洲精品国产无天堂网2021| 欧美系列亚洲系列| 青青草原综合久久大伊人精品| 欧美videos大乳护士334| 国精品**一区二区三区在线蜜桃| 久久综合丝袜日本网| 成人av资源站| 亚洲一区二区在线免费看| 欧美日韩一区二区三区四区| 日韩电影在线免费观看| 久久综合色之久久综合| 粉嫩aⅴ一区二区三区四区| 成人欧美一区二区三区视频网页| 色综合久久久久| 日韩成人免费电影| 国产日产欧美一区| 欧美怡红院视频| 免费视频一区二区| 国产精品视频一二| 在线成人免费观看| 国产成人av网站| 亚洲第一在线综合网站| 337p日本欧洲亚洲大胆精品| 成人黄色777网| 免费观看一级欧美片| 国产精品国产三级国产aⅴ原创| 欧美视频在线一区| 国产成人亚洲综合色影视| 亚洲影视在线观看| 久久久三级国产网站| 在线观看国产日韩| 国产精品一二二区| 性久久久久久久久久久久| 国产日韩v精品一区二区| 国产无遮挡一区二区三区毛片日本| 白白色 亚洲乱淫| 老汉av免费一区二区三区| 国产精品激情偷乱一区二区∴| 欧美日韩成人高清| 丁香婷婷综合网| 韩国女主播一区| 性久久久久久久| 亚洲欧美日韩电影| 亚洲国产经典视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美精品在线一区二区| 成人h版在线观看| 国产主播一区二区三区| 日韩电影在线看| 亚洲主播在线播放| 亚洲女人小视频在线观看| 国产亚洲精品超碰| 精品成人私密视频| 欧美成人国产一区二区| 制服丝袜国产精品| 欧美伦理影视网| 欧美日韩和欧美的一区二区| 欧洲精品在线观看| 91蜜桃婷婷狠狠久久综合9色| 国产成a人亚洲| 国产精品456露脸| 国产大陆精品国产| 国产精品一区在线| 国产一区二区三区电影在线观看| 欧美aⅴ一区二区三区视频| 亚洲成人你懂的| 午夜久久福利影院| 亚洲 欧美综合在线网络| 午夜影院久久久| 五月天一区二区三区| 亚洲福中文字幕伊人影院| 午夜视频在线观看一区二区三区| 亚洲综合激情网| 五月天网站亚洲| 喷水一区二区三区| 国产在线乱码一区二区三区| 国产精选一区二区三区| 夫妻av一区二区| a级高清视频欧美日韩| 色视频一区二区| 欧美精品精品一区| 日韩欧美国产小视频| 久久久久久久久久久久久久久99 | 激情图片小说一区| 狠狠色丁香久久婷婷综合丁香| 激情另类小说区图片区视频区| 国产米奇在线777精品观看| 国产成人精品免费| 在线观看日产精品| 制服丝袜亚洲色图| 国产欧美一区二区三区网站 | 欧美三区在线视频| 欧美一区二区在线视频| 久久伊99综合婷婷久久伊| 成人欧美一区二区三区1314| 亚洲高清免费观看| 国产美女主播视频一区| 色偷偷久久一区二区三区| 日韩一区二区三区免费看| 久久精品无码一区二区三区| 亚洲欧美日韩国产手机在线| 蜜臀精品久久久久久蜜臀| 岛国精品在线观看| 在线不卡中文字幕| 国产精品天美传媒| 三级在线观看一区二区| 成人久久久精品乱码一区二区三区| 欧美日韩一级黄| 欧美高清一级片在线观看| 日韩综合一区二区| 91在线视频18| 国产日韩一级二级三级|