锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲av色香蕉一区二区三区蜜桃,亚洲av无码潮喷在线观看,youjizz亚洲http://www.tkk7.com/lukangping/articles/331104.htmlkangarookangarooSun, 05 Sep 2010 15:06:00 GMThttp://www.tkk7.com/lukangping/articles/331104.htmlhttp://www.tkk7.com/lukangping/comments/331104.htmlhttp://www.tkk7.com/lukangping/articles/331104.html#Feedback0http://www.tkk7.com/lukangping/comments/commentRss/331104.htmlhttp://www.tkk7.com/lukangping/services/trackbacks/331104.html鍒氬紑濮嬬殑鏃跺欑粡甯鎬細鎶婅繖涓ょ被鐨勬柟娉曟悶娣蜂簡錛屾參鎱㈡帴瑙﹀浜嗭紝涓瀹氳寮勬竻妤氫簡銆?br /> (1)綆$悊綰跨▼鐨勬柟娉?br /> start錛氫笉鐢ㄥ璇達紝鍚姩涓涓嚎紼嬬殑鏂規硶銆傝皟鐢ㄨ鏂規硶鍚庯紝綰跨▼鍗寵繘鍏ュ彲榪愯鐘舵侊紝涔熷氨鏄繘鍏ュ彲榪愯鐨勭嚎紼嬫睜浜嗐?br /> sleep錛氱嚎紼嬩紤鐪狅紝灝嗕竴涓繍琛屾椂鐨勭嚎紼嬶紝灝嗗叾鐘舵佸彉涓哄彲榪愯鐘舵侊紝鐒跺悗鍔犲叆鍒板拰鍏朵粬澶勪簬鍙繍琛岀姸鎬佷笅鐨勭嚎紼嬫姠澶鴻繍琛屾満浼氥傛崲鍙ヨ瘽璇達紝sleep鐨勬椂闂存槸璇ョ嚎紼嬩笉鎵ц鐨勬渶鐭椂闂淬?br /> yield錛氫嬌寰楀綋鍓嶇嚎紼嬭繘鍏ュ彲榪愯鐘舵侊紝浠ュ厑璁稿叿鏈夌浉鍚岀姸鎬佷紭鍏堢駭鐨勫叾浠栫嚎紼嬭幏寰楄繍琛屾満浼氥備絾鏄笉淇濊瘉錛屽垰榪涘叆鍙繍琛岀姸鎬侊紝鍙堣閫変腑榪涘叆榪愯鐘舵併?br /> join錛氶潪闈欐佹柟娉昷oin錛屾湁鐐規姠綰跨▼鐨勬剰鎬濄備竴鏃︽煇涓嚎紼嬪疄渚媡璋冪敤join鏂規硶錛屽垯褰撳墠綰跨▼鍙樹負鍙繍琛岀姸鎬侊紝鐩村埌綰跨▼t榪愯瀹屾瘯涓烘銆?br /> (2)綰跨▼闂村崗浣滅殑鏂規硶



kangaroo 2010-09-05 23:06 鍙戣〃璇勮
]]>
騫跺彂瀹炶返涔嬩竴錛欻ashMap鐨勯潪綰跨▼瀹夊叏鎬у拰ConcurrentHasMaphttp://www.tkk7.com/lukangping/articles/331089.htmlkangarookangarooSun, 05 Sep 2010 09:12:00 GMThttp://www.tkk7.com/lukangping/articles/331089.htmlhttp://www.tkk7.com/lukangping/comments/331089.htmlhttp://www.tkk7.com/lukangping/articles/331089.html#Feedback2http://www.tkk7.com/lukangping/comments/commentRss/331089.htmlhttp://www.tkk7.com/lukangping/services/trackbacks/331089.html鍦ㄥ鉤鏃跺紑鍙戜腑錛屾垜浠粡甯擱噰鐢℉ashMap鏉ヤ綔涓烘湰鍦扮紦瀛樼殑涓縐嶅疄鐜版柟寮忥紝灝嗕竴浜涘緋葷粺鍙橀噺絳夋暟鎹噺姣旇緝灝戠殑鍙傛暟淇濆瓨鍦℉ashMap涓紝騫跺皢鍏朵綔涓哄崟渚嬬被鐨勪竴涓睘鎬с傚湪緋葷粺榪愯涓紝浣跨敤鍒拌繖浜涚紦瀛樻暟鎹紝閮藉彲浠ョ洿鎺ヤ粠璇ュ崟渚嬩腑鑾峰彇璇ュ睘鎬ч泦鍚堛備絾鏄紝鏈榪戝彂鐜幫紝HashMap騫朵笉鏄嚎紼嬪畨鍏ㄧ殑錛屽鏋滀綘鐨勫崟渚嬬被娌℃湁鍋氫唬鐮佸悓姝ユ垨瀵硅薄閿佺殑鎺у埗錛屽氨鍙兘鍑虹幇寮傚父銆?br />
棣栧厛鐪嬩笅鍦ㄥ綰跨▼鐨勮闂笅錛岄潪鐜板満瀹夊叏鐨凥ashMap鐨勮〃鐜板浣曪紝鍦ㄧ綉涓婄湅浜嗕竴浜涜祫鏂欙紝鑷繁涔熷仛浜嗕竴涓嬫祴璇曪細

 1public class MainClass {
 2    
 3    public static final HashMap<String, String> firstHashMap=new HashMap<String, String>();
 4    
 5    public static void main(String[] args) throws InterruptedException {
 6        
 7        //綰跨▼涓
 8        Thread t1=new Thread(){
 9            public void run() {
10                for(int i=0;i<25;i++){
11                    firstHashMap.put(String.valueOf(i), String.valueOf(i));
12                }

13            }

14        }
;
15        
16        //綰跨▼浜?/span>
17        Thread t2=new Thread(){
18            public void run() {
19                for(int j=25;j<50;j++){
20                    firstHashMap.put(String.valueOf(j), String.valueOf(j));
21                }

22            }

23        }
;
24        
25        t1.start();
26        t2.start();
27        
28        //涓葷嚎紼嬩紤鐪?縐掗挓錛屼互渚縯1鍜宼2涓や釜綰跨▼灝唂irstHashMap濉瀹屾瘯銆?/span>
29        Thread.currentThread().sleep(1000);
30        
31        for(int l=0;l<50;l++){
32            //濡傛灉key鍜寁alue涓嶅悓錛岃鏄庡湪涓や釜綰跨▼put鐨勮繃紼嬩腑鍑虹幇寮傚父銆?/span>
33            if(!String.valueOf(l).equals(firstHashMap.get(String.valueOf(l)))){
34                System.err.println(String.valueOf(l)+":"+firstHashMap.get(String.valueOf(l)));
35            }

36        }

37        
38    }

39
40}

涓婇潰鐨勪唬鐮佸湪澶氭鎵ц鍚庯紝鍙戠幇琛ㄧ幇寰堜笉紼沖畾錛屾湁鏃舵病鏈夊紓甯告枃妗堟墦鍑猴紝鏈夋椂鍒欐湁涓紓甯稿嚭鐜幫細


涓轟粈涔堜細鍑虹幇榪欑鎯呭喌錛屼富瑕佺湅涓婬ashMap鐨勫疄鐜幫細
 1public V put(K key, V value) {
 2    if (key == null)
 3        return putForNullKey(value);
 4        int hash = hash(key.hashCode());
 5        int i = indexFor(hash, table.length);
 6        for (Entry<K,V> e = table[i]; e != null; e = e.next) {
 7            Object k;
 8            if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
 9                V oldValue = e.value;
10                e.value = value;
11                e.recordAccess(this);
12                return oldValue;
13            }

14        }

15
16        modCount++;
17        addEntry(hash, key, value, i);
18        return null;
19    }

鎴戣寰楅棶棰樹富瑕佸嚭鐜板湪鏂規硶addEntry錛岀戶緇湅錛?br />
1void addEntry(int hash, K key, V value, int bucketIndex) {
2    Entry<K,V> e = table[bucketIndex];
3        table[bucketIndex] = new Entry<K,V>(hash, key, value, e);
4        if (size++ >= threshold)
5            resize(2 * table.length);
6    }

浠庝唬鐮佷腑錛屽彲浠ョ湅鍒幫紝濡傛灉鍙戠幇鍝堝笇琛ㄧ殑澶у皬瓚呰繃闃鍊紅hreshold錛屽氨浼氳皟鐢╮esize鏂規硶錛屾墿澶у閲忎負鍘熸潵鐨勪袱鍊嶏紝鑰屾墿澶у閲忕殑鍋氭硶鏄柊寤轟竴涓狤ntry[]錛?br />
 1void resize(int newCapacity) {
 2        Entry[] oldTable = table;
 3        int oldCapacity = oldTable.length;
 4        if (oldCapacity == MAXIMUM_CAPACITY) {
 5            threshold = Integer.MAX_VALUE;
 6            return;
 7        }

 8
 9        Entry[] newTable = new Entry[newCapacity];
10        transfer(newTable);
11        table = newTable;
12        threshold = (int)(newCapacity * loadFactor);
13    }

涓鑸垜浠0鏄嶩ashMap鏃訛紝浣跨敤鐨勯兘鏄粯璁ょ殑鏋勯犳柟娉曪細HashMap<K,V>錛岀湅浜嗕唬鐮佷綘浼氬彂鐜幫紝瀹冭繕鏈夊叾瀹冪殑鏋勯犳柟娉曪細HashMap(int initialCapacity, float loadFactor)錛屽叾涓弬鏁癷nitialCapacity涓哄垵濮嬪閲忥紝loadFactor涓哄姞杞藉洜瀛愶紝鑰屼箣鍓嶆垜浠湅鍒扮殑threshold = (int)(capacity * loadFactor); 濡傛灉鍦ㄩ粯璁ゆ儏鍐典笅錛屼竴涓狧ashMap鐨勫閲忎負16錛屽姞杞藉洜瀛愪負0.75錛岄偅涔堥榾鍊煎氨鏄?2錛屾墍浠ュ湪寰HashMap涓璸ut鐨勫煎埌杈?2鏃訛紝瀹冨皢鑷姩鎵╁涓ゅ嶏紝濡傛灉涓や釜綰跨▼鍚屾椂閬囧埌HashMap鐨勫ぇ灝忚揪鍒?2鐨勫嶆暟鏃訛紝灝卞緢鏈夊彲鑳戒細鍑虹幇鍦ㄥ皢oldTable杞Щ鍒皀ewTable鐨勮繃紼嬩腑閬囧埌闂錛屼粠鑰屽鑷存渶緇堢殑HashMap鐨勫煎瓨鍌ㄥ紓甯搞?br />
JDK1.0寮曞叆浜嗙涓涓叧鑱旂殑闆嗗悎綾籋ashTable錛?font face="Arial" color="#333333">瀹冩槸綰跨▼瀹夊叏鐨勩侶ashTable鐨勬墍鏈夋柟娉曢兘鏄悓姝ョ殑銆?br /> JDK2.0寮曞叆浜咹ashMap錛屽畠鎻愪緵浜嗕竴涓笉鍚屾鐨勫熀綾誨拰涓涓悓姝ョ殑鍖呰鍣╯ynchronizedMap銆俿ynchronizedMap琚О涓烘湁鏉′歡鐨勭嚎紼嬪畨鍏ㄧ被銆?br /> JDK5.0util.concurrent鍖呬腑寮曞叆瀵筂ap綰跨▼瀹夊叏鐨勫疄鐜癈oncurrentHashMap錛屾瘮璧穝ynchronizedMap錛屽畠鎻愪緵浜嗘洿楂樼殑鐏墊椿鎬с傚悓鏃惰繘琛岀殑璇誨拰鍐欐搷浣滈兘鍙互騫跺彂鍦版墽琛屻?br />
鎵浠ュ湪寮濮嬬殑嫻嬭瘯涓紝濡傛灉鎴戜滑閲囩敤ConcurrentHashMap錛屽畠鐨勮〃鐜板氨寰堢ǔ瀹氾紝鎵浠ヤ互鍚庡鏋滀嬌鐢∕ap瀹炵幇鏈湴緙撳瓨錛屼負浜嗘彁楂樺茍鍙戞椂鐨勭ǔ瀹氭э紝榪樻槸寤鴻浣跨敤ConcurrentHashMap銆?br />

====================================================================

鍙﹀錛岃繕鏈変竴涓垜浠粡甯鎬嬌鐢ㄧ殑ArrayList涔熸槸闈炵嚎紼嬪畨鍏ㄧ殑錛岀綉涓婄湅鍒扮殑鏈変竴涓В閲婃槸榪欐牱錛?br /> 涓涓?ArrayList 綾伙紝鍦ㄦ坊鍔犱竴涓厓绱犵殑鏃跺欙紝瀹冨彲鑳戒細鏈変袱姝ユ潵瀹屾垚錛?. 鍦?Items[Size] 鐨勪綅緗瓨鏀炬鍏冪礌錛?. 澧炲ぇ Size 鐨勫箋?br /> 鍦ㄥ崟綰跨▼榪愯鐨勬儏鍐典笅錛屽鏋?Size = 0錛屾坊鍔犱竴涓厓绱犲悗錛屾鍏冪礌鍦ㄤ綅緗?0錛岃屼笖 Size=1錛?br /> 鑰屽鏋滄槸鍦ㄥ綰跨▼鎯呭喌涓嬶紝姣斿鏈変袱涓嚎紼嬶紝綰跨▼ A 鍏堝皢鍏冪礌瀛樻斁鍦ㄤ綅緗?0銆備絾鏄鏃?CPU 璋冨害綰跨▼A鏆傚仠錛岀嚎紼?B 寰楀埌榪愯鐨勬満浼氥傜嚎紼婤涔熷皢鍏冪礌鏀懼湪浣嶇疆0錛岋紙鍥犱負size榪樻湭澧為暱錛夛紝瀹屼簡涔嬪悗錛屼袱涓嚎紼嬮兘鏄痵ize++錛岀粨鏋渟ize鍙樻垚2錛岃屽彧鏈塱tems[0]鏈夊厓绱犮?br /> util.concurrent鍖呬篃鎻愪緵浜嗕竴涓嚎紼嬪畨鍏ㄧ殑ArrayList鏇夸唬鑰匔opyOnWriteArrayList銆?





kangaroo 2010-09-05 17:12 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲AV永久无码区成人网站| 国产精品jizz在线观看免费| 亚洲成年看片在线观看| 无码人妻一区二区三区免费| 亚洲精品人成电影网| 99热这里有免费国产精品| 久久狠狠躁免费观看2020| 日韩吃奶摸下AA片免费观看| 亚洲国产成人va在线观看网址| 国产亚洲福利精品一区二区| 免费不卡中文字幕在线| 亚洲精品美女视频| 人人鲁免费播放视频人人香蕉| 色se01短视频永久免费| 自拍偷区亚洲国内自拍| 久爱免费观看在线网站| 午夜亚洲国产理论秋霞| 人妻巨大乳hd免费看| 亚洲国产成人高清在线观看| 亚洲黄色免费网址| 亚洲欧美日韩中文二区| 免费国产在线观看不卡| 亚洲一区二区三区国产精华液| 久草福利资源网站免费| 亚洲日韩国产一区二区三区| 两个人看的www免费| 亚洲日本在线免费观看| 国产亚洲色婷婷久久99精品| 亚洲自偷自偷图片| 亚洲综合丁香婷婷六月香| 在线免费观看毛片网站| 黄色三级三级免费看| 亚洲av无码片在线播放| 女人18一级毛片免费观看| 免费无码一区二区| 蜜芽亚洲av无码精品色午夜| 波多野结衣久久高清免费 | 区三区激情福利综合中文字幕在线一区亚洲视频1 | 美女视频黄a视频全免费网站色窝| 免费高清小黄站在线观看| 911精品国产亚洲日本美国韩国|