锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一区二区久久久久久,成人动漫在线免费观看,国产一级在线http://www.aygfsteel.com/yuyee/category/46806.htmlzh-cnTue, 09 Nov 2010 10:02:23 GMTTue, 09 Nov 2010 10:02:23 GMT60linkedhashmap鐪嬬湅http://www.aygfsteel.com/yuyee/archive/2010/11/08/337579.html緹旂緤緹旂緤Mon, 08 Nov 2010 15:14:00 GMThttp://www.aygfsteel.com/yuyee/archive/2010/11/08/337579.htmlhashmap鐨勬瀯閫犲嚱鏁頒腑璋冪敤init()鏂規(guī)硶錛岃宭inkedhashmap涓噸鍐欎簡(jiǎn)init(),灝唄ead鍏冪礌鍒濆鍖?/div>
   void init() {
        header = new Entry<K,V>(-1, null, null, null);
        header.before = header.after = header;
    }

private final boolean accessOrder榪欎釜灞炴ц〃紺烘槸鍚﹁鏍規(guī)嵁璁塊棶欏哄簭鏀瑰彉綰挎х粨鏋?/div>
鍦╨inkedhashmap涓敼鍐欎簡(jiǎn)hashmap鐨刧et()鏂規(guī)硶錛屽鍔犱簡(jiǎn) e.recordAccess(this)錛岃繖涓柟娉曚富瑕佹槸鏍規(guī)嵁a(chǎn)ccessOrder鐨勫煎垽鏂槸鍚﹂渶瑕佸疄鐜癓RU錛?/div>
 void recordAccess(HashMap<K,V> m) {
            LinkedHashMap<K,V> lm = (LinkedHashMap<K,V>)m;
            if (lm.accessOrder) {
                lm.modCount++;
                remove();
                addBefore(lm.header);
            }
        }

addBefore榪欎釜鏂規(guī)硶鏄妸鍒氳闂殑鍏冪礌鏀懼埌head鐨勫墠闈?/div>
 private void addBefore(Entry<K,V> existingEntry) {
            after  = existingEntry;
            before = existingEntry.before;
            before.after = this;
            after.before = this;
        }
put鏂規(guī)硶緇ф壙鑷猦ashmap,hashmap棰勭暀浜?nbsp;e.recordAccess(this)榪欎釜鏂規(guī)硶錛?/div>
     public V put(K key, V value) {
        if (key == null)
            return putForNullKey(value);
        int hash = hash(key.hashCode());
        int i = indexFor(hash, table.length);
        for (Entry<K,V> e = table[i]; e != null; e = e.next) {
            Object k;
            if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
                V oldValue = e.value;
                e.value = value;
                e.recordAccess(this);
                return oldValue;
            }
        }

        modCount++;
        addEntry(hash, key, value, i);
        return null;
    }

騫墮氳繃閲嶅啓 addEntry(hash, key, value, i)榪欎釜鏂規(guī)硶錛屽疄鐜癓RU涓殑鍒犻櫎鍔ㄤ綔錛?/div>
    void addEntry(int hash, K key, V value, int bucketIndex) {
        createEntry(hash, key, value, bucketIndex);

        // Remove eldest entry if instructed, else grow capacity if appropriate
        Entry<K,V> eldest = header.after;//鎵懼埌鏈鑰佺殑鍏冪礌錛岃繖涓湪addBefore閲岀‘瀹氾紝鍒濇璧嬪兼槸褰撳彧鏈変竴涓猦ead鏃跺欙紝浣犳彃鍏ヤ竴涓厓绱?/div>
        if (removeEldestEntry(eldest)) {//榪欎釜鏄彈淇濇姢鐨勬柟娉曪紝闇瑕佽嚜宸卞埗瀹氬垹闄ょ瓥鐣ワ紝姣斿size() > 鏈澶у閲?鍙嚜宸卞疄鐜幫紝榛樿涓篺alse,涔熷氨鏄笉寮鍚?/div>
            removeEntryForKey(eldest.key);
        } else {
            if (size >= threshold)
                resize(2 * table.length);
        }
    }
鑷繁閲嶅啓榪欎釜鏂規(guī)硶錛屾寚瀹氬垹闄ょ瓥鐣ワ細(xì)
 protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
        return false;
    }
鍥犳錛屽彲鐢╨inkedhashmap 鏋勫緩涓涓熀浜嶭RU綆楁硶鐨勭紦瀛樸?/div>


package com.google.study.cache;

import java.util.LinkedHashMap;
import java.util.concurrent.locks.ReentrantLock;

public class SimpleCache<K, V> extends LinkedHashMap<K, V> {

private int maxCapacity;
private ReentrantLock lock = new ReentrantLock();

public SimpleCache(int maxCapacity, float load_factory) {
super(maxCapacity, load_factory, true);
this.maxCapacity = maxCapacity;
}

public int getMaxCapacity() {
return maxCapacity;
}

public void setMaxCapacity(int maxCapacity) {
this.maxCapacity = maxCapacity;
}

@Override
protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) {
// TODO Auto-generated method stub
return super.removeEldestEntry(eldest);
}

public V get(Object key) {
lock.lock();
try {
return super.get(key);
} finally {
lock.unlock();
}

}

public V put(K k, V v) {
lock.lock();
try {
return super.put(k, v);
} finally {
lock.unlock();
}
}

@Override
public void clear() {
lock.lock();
try {
super.clear();
} finally {
lock.unlock();
}
}

@Override
public int size() {

lock.lock();
try {
return super.size();
} finally {
lock.unlock();
}
}

}





緹旂緤 2010-11-08 23:14 鍙戣〃璇勮
]]>緙撳瓨鐨勫熀鏈壒鎬?/title><link>http://www.aygfsteel.com/yuyee/archive/2010/11/02/336820.html</link><dc:creator>緹旂緤</dc:creator><author>緹旂緤</author><pubDate>Tue, 02 Nov 2010 08:30:00 GMT</pubDate><guid>http://www.aygfsteel.com/yuyee/archive/2010/11/02/336820.html</guid><description><![CDATA[緙撳瓨鍩烘湰鐗規(guī)э細(xì) <div>1.鏃墮棿璁板綍錛岃繘鍏ache鐨勬椂闂?/div> <div>2.timeout榪囨湡鏃墮棿錛宑ache閲岄潰鏁版嵁澶氫箙榪囨湡</div> <div>3.eviction policy 娓呮絳栫暐錛屾渶涓嶇粡甯歌闂殑鏁版嵁錛屾渶涔呮病璁塊棶鍒扮殑鏁版嵁</div> <div>4.鍛戒腑鐜?Cache鐨勬暟鎹閫変腑鐨勬瘮鐜?/div> <div>5.鍒嗙駭Cache錛屾敮鎸?Region鍒嗙駭錛屾瘮濡俥hcache</div> <div>6.鍒嗗竷寮忥紝鍒嗗竷鍦ㄤ笉鍚岀殑璁$畻鏈轟笂</div> <div>7.閿侊紝浜嬪姟錛屾暟鎹悓姝?/div> <div><br /> </div> <div>鍚勪釜Cluster涔嬮棿鐨凜ache鍚屾鏈夊縐嶅疄鐜版柟娉曘傛瘮濡侸MS,RMI </div> <div>Cache涓竴鑸湁get,put,remove,clear</div> <div>瀵逛簬Cluster鐨凜ache鏉ヨ錛岃(get)鑲畾鏄痩ocal鐨勶紝鍙渶瑕佷粠鏈湴鍐呭瓨涓幏鍙栵紝鑰孯emove/clear錛岄渶瑕佸拰鍏朵粬璁$畻鏈哄悓姝ワ紝put鍙互鏄痩ocal鐨勶紝鍥犱負(fù)濡傛灉璇諱笉鍒幫紝鍙互浠庢暟鎹簱涓</div> <div>remote put:涓鍙拌綆楁満鎶婃暟鎹斁鍒拌嚜宸辯殑Cache涓紝榪欎釜鏁版嵁闇瑕佷紶鎾埌Cluster鍏朵粬璁$畻鏈轟笂錛岃繖鏍峰叾浠朇luster鍙互鍚屾錛屼絾鏄鏋滄暟鎹ぇ錛屼紶鎾殑浠d環(huán)灝卞ぇ浜?/div> <div>local put:鍙斁鍒版湰鍦拌綆楁満鐨凜ache閲岋紝涓嶉渶瑕佸悓姝ュ埌鍏朵粬Cluster錛屼粠Cache寰椾笉鍒扮殑鏁版嵁鍙互鍦ㄦ暟鎹簱閲岃鍙?/div> <div><br /> </div> <div><br /> </div> <div>榪囨湡鏁版嵁錛氬湪hibernate絳塷rm宸ュ叿涓紝鏈変竴涓師鍒欙紝灝辨槸涓嶈鎶婃病鏈塩ommit鐨勬暟鎹斁鍒扮紦瀛樹腑錛岄槻姝㈣剰璇伙紝鑰屼笖remove涔嬪悗蹇呴』閫氱煡鍏朵粬<span style="font-family: Tahoma; font-size: 12px; line-height: 18px; ">Cluster,淇濊瘉澶ч儴鍒嗘椂闂村唴錛岀粰鐢ㄦ埛鐨勬暟鎹笉鏄繃鏈熺殑鏁版嵁</span></div> <div><font face="Tahoma" size="3"><span style="font-size: 12px; line-height: 18px;">ORM Cache涓紝涓鑸垎2縐岰ache,涓縐嶆槸綾葷紦瀛橈紝涓縐嶆槸鏌ヨ緙撳瓨錛岀被緙撳瓨鏄互ID瀵瑰簲Entity瀵硅薄錛岃屾煡璇㈢紦瀛樻槸鐢ㄦ潵瀛樻斁涓鏉℃煡璇㈣鍙ュ搴旂殑緇撴灉闆嗭紝鐒跺悗鍐嶅埌綾葷紦瀛橀噷鎵懼搷搴旂殑瀹炰綋銆?/span></font></div> <div><font face="Tahoma" size="3"><span style="font-size: 12px; line-height: 18px;">綾葷紦瀛橈細(xì)涓綾籈ntity涓涓猂egion</span></font></div> <div><font face="Tahoma" size="3"><span style="font-size: 12px; line-height: 18px;">鏌ヨ緙撳瓨:</span></font><span style="font-size:16.0pt;font-family:Calibri; mso-ascii-font-family:Calibri;mso-fareast-font-family:瀹嬩綋;mso-bidi-font-family: +mn-cs;color:black;mso-color-index:1;mso-font-kerning:12.0pt;language:en-US">hibernate</span><span style="font-size:16.0pt;font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-fareast-font-family:瀹嬩綋;mso-bidi-font-family:+mn-cs;color:black;mso-color-index: 1;mso-font-kerning:12.0pt;language:zh-CN">鍦ㄤ竴涓湴鏂圭淮鎶ゆ瘡涓〃鐨勬渶鍚庢洿鏂版椂闂達(dá)紝鍏跺疄涔熷氨鏄斁鍦ㄤ笂闈?/span><span style="font-size:16.0pt;font-family:Calibri;mso-ascii-font-family:Calibri; mso-fareast-font-family:瀹嬩綋;mso-bidi-font-family:+mn-cs;color:black;mso-color-index: 1;mso-font-kerning:12.0pt;language:en-US">org.hibernate.cache</span><span style="font-size:16.0pt;font-family:Calibri;mso-ascii-font-family:Calibri; mso-fareast-font-family:瀹嬩綋;mso-bidi-font-family:+mn-cs;color:black;mso-color-index: 1;mso-font-kerning:12.0pt;language:en-US">. </span><span style="font-size:16.0pt; font-family:Calibri;mso-ascii-font-family:Calibri;mso-fareast-font-family:瀹嬩綋; mso-bidi-font-family:+mn-cs;color:black;mso-color-index:1;mso-font-kerning: 12.0pt;language:en-US">UpdateTimestampsCache</span><span style="font-size:16.0pt; font-family:瀹嬩綋;mso-ascii-font-family:Calibri;mso-fareast-font-family:瀹嬩綋; mso-bidi-font-family:+mn-cs;color:black;mso-color-index:1;mso-font-kerning: 12.0pt;language:zh-CN">鎵鎸囧畾鐨勭紦瀛橀厤緗噷闈紝</span><span style="font-size:16.0pt;font-family:瀹嬩綋;mso-ascii-font-family: Calibri;mso-fareast-font-family:瀹嬩綋;mso-bidi-font-family:+mn-cs;color:black; mso-color-index:1;mso-font-kerning:12.0pt;language:zh-CN">褰撻氳繃</span><span style="font-size:16.0pt;font-family:Calibri;mso-ascii-font-family:Calibri; mso-fareast-font-family:瀹嬩綋;mso-bidi-font-family:+mn-cs;color:black;mso-color-index: 1;mso-font-kerning:12.0pt;language:en-US">hibernate</span><span style="font-size:16.0pt;font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-fareast-font-family:瀹嬩綋;mso-bidi-font-family:+mn-cs;color:black;mso-color-index: 1;mso-font-kerning:12.0pt;language:zh-CN">鏇存柊鐨勬椂鍊欙紝</span><span style="font-size: 16.0pt;font-family:Calibri;mso-ascii-font-family:Calibri;mso-fareast-font-family: 瀹嬩綋;mso-bidi-font-family:+mn-cs;color:black;mso-color-index:1;mso-font-kerning: 12.0pt;language:en-US">hibernate</span><span style="font-size:16.0pt; font-family:瀹嬩綋;mso-ascii-font-family:Calibri;mso-fareast-font-family:瀹嬩綋; mso-bidi-font-family:+mn-cs;color:black;mso-color-index:1;mso-font-kerning: 12.0pt;language:zh-CN">浼?xì)鐭ラ亾杩檵啤鏇存柊濯?jiǎng)鍝嶄簡(jiǎn)鍝簺琛ㄣ傜劧鍚庡畠鏇存柊榪欎簺琛ㄧ殑鏈鍚庢洿鏂版椂闂淬傛瘡涓紦瀛橀兘鏈変竴涓敓鎴愭椂闂村拰榪欎釜緙撳瓨鎵鏌ヨ鐨勮〃錛屽綋</span><span style="font-size:16.0pt;font-family:Calibri;mso-ascii-font-family:Calibri; mso-fareast-font-family:瀹嬩綋;mso-bidi-font-family:+mn-cs;color:black;mso-color-index: 1;mso-font-kerning:12.0pt;language:en-US">hibernate</span><span style="font-size:16.0pt;font-family:瀹嬩綋;mso-ascii-font-family:Calibri; mso-fareast-font-family:瀹嬩綋;mso-bidi-font-family:+mn-cs;color:black;mso-color-index: 1;mso-font-kerning:12.0pt;language:zh-CN">鏌ヨ涓涓紦瀛樻槸鍚﹀瓨鍦ㄧ殑鏃跺欙紝濡傛灉緙撳瓨瀛樺湪錛屽畠榪樿鍙栧嚭緙撳瓨鐨勭敓鎴愭椂闂村拰榪欎釜緙撳瓨鎵鏌ヨ鐨勮〃錛岀劧鍚庡幓鏌ユ壘榪欎簺琛ㄧ殑鏈鍚庢洿鏂版椂闂達(dá)紝濡傛灉鏈変竴涓〃鍦ㄧ敓鎴愭椂闂村悗鏇存柊榪囦簡(jiǎn)錛岄偅涔堣繖涓紦瀛樻槸鏃犳晥鐨勩?nbsp;</span><span style="font-family: 瀹嬩綋; font-size: 21px; ">鍙互鐪嬪嚭錛屽彧瑕佹洿鏂拌繃涓涓〃錛岄偅涔堝嚒鏄秹鍙?qiáng)鍒皹q欎釜琛ㄧ殑鏌ヨ緙撳瓨灝卞け鏁堜簡(jiǎn)錛屽洜姝ゆ煡璇㈢紦瀛樼殑鍛戒腑鐜囧彲鑳戒細(xì)姣旇緝浣庛?/span></div> <div><br /> </div> <div>7</div> <img src ="http://www.aygfsteel.com/yuyee/aggbug/336820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yuyee/" target="_blank">緹旂緤</a> 2010-11-02 16:30 <a href="http://www.aygfsteel.com/yuyee/archive/2010/11/02/336820.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> 主站蜘蛛池模板: <a href="http://" target="_blank">辽宁省</a>| <a href="http://" target="_blank">海南省</a>| <a href="http://" target="_blank">北碚区</a>| <a href="http://" target="_blank">大足县</a>| <a href="http://" target="_blank">正阳县</a>| <a href="http://" target="_blank">兴海县</a>| <a href="http://" target="_blank">平泉县</a>| <a href="http://" target="_blank">大连市</a>| <a href="http://" target="_blank">兖州市</a>| <a href="http://" target="_blank">固始县</a>| <a href="http://" target="_blank">柳江县</a>| <a href="http://" target="_blank">平果县</a>| <a href="http://" target="_blank">灌阳县</a>| <a href="http://" target="_blank">卢湾区</a>| <a href="http://" target="_blank">汉中市</a>| <a href="http://" target="_blank">安顺市</a>| <a href="http://" target="_blank">淮北市</a>| <a href="http://" target="_blank">博湖县</a>| <a href="http://" target="_blank">双流县</a>| <a href="http://" target="_blank">郴州市</a>| <a href="http://" target="_blank">张北县</a>| <a href="http://" target="_blank">蒙山县</a>| <a href="http://" target="_blank">山东</a>| <a href="http://" target="_blank">甘洛县</a>| <a href="http://" target="_blank">江源县</a>| <a href="http://" target="_blank">西安市</a>| <a href="http://" target="_blank">宁蒗</a>| <a href="http://" target="_blank">鹤峰县</a>| <a href="http://" target="_blank">石河子市</a>| <a href="http://" target="_blank">吴堡县</a>| <a href="http://" target="_blank">莱州市</a>| <a href="http://" target="_blank">嘉黎县</a>| <a href="http://" target="_blank">镇坪县</a>| <a href="http://" target="_blank">承德县</a>| <a href="http://" target="_blank">镶黄旗</a>| <a href="http://" target="_blank">平定县</a>| <a href="http://" target="_blank">金秀</a>| <a href="http://" target="_blank">廊坊市</a>| <a href="http://" target="_blank">容城县</a>| <a href="http://" target="_blank">库车县</a>| <a href="http://" target="_blank">白朗县</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>