锘??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)綰跨▼闂村崗浣滅殑鏂規硶

]]>- 騫跺彂瀹炶返涔嬩竴錛欻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鐨勮〃鐜板浣曪紝鍦ㄧ綉涓婄湅浜嗕竴浜涜祫鏂欙紝鑷繁涔熷仛浜嗕竴涓嬫祴璇曪細
1
public 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鐨勫疄鐜幫細
1
public 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 />
1
void 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 />
1
void 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銆?

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