锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品成人久久,亚洲精品视频免费在线观看,亚洲成色999久久网站http://www.tkk7.com/abin/category/52780.htmlzh-cnFri, 19 Oct 2012 22:45:41 GMTFri, 19 Oct 2012 22:45:41 GMT60java涓殑volatile鍜宻ynchronizedhttp://www.tkk7.com/abin/archive/2012/10/19/389867.htmlabingabingFri, 19 Oct 2012 05:36:00 GMThttp://www.tkk7.com/abin/archive/2012/10/19/389867.htmlhttp://www.tkk7.com/abin/comments/389867.htmlhttp://www.tkk7.com/abin/archive/2012/10/19/389867.html#Feedback0http://www.tkk7.com/abin/comments/commentRss/389867.htmlhttp://www.tkk7.com/abin/services/trackbacks/389867.html榪欎釜鍙兘鏄渶濂界殑瀵規(guī)瘮volatile 鍜宻ynchronized 浣滅敤鐨勬枃绔犱簡銆倂olatile 鏄竴涓彉閲忎慨楗扮錛岃宻ynchronized 鏄竴涓柟娉曟垨鍧楃殑淇グ絎︺傛墍浠ユ垜浠嬌鐢ㄨ繖涓ょ鍏抽敭瀛楁潵鎸囧畾涓夌綆鍗曠殑瀛樺彇鍙橀噺鐨勬柟寮忋?/span>

         int i1;                       int geti1() {return i1;}

volatile int i2;                        int geti2() {return i2;}

     int i3;          synchronized int geti3() {return i3;}

geti1() 鍦?strong>褰撳墠綰跨▼ 涓珛鍗寵幏鍙栧湪i1 鍙橀噺涓殑鍊箋傜嚎紼嬪彲浠ヨ幏寰楀彉閲忕殑鏈湴鎷瘋礉錛岃屾墍鑾峰緱鐨勫彉閲忕殑鍊煎茍涓嶄竴瀹氫笌鍏朵粬綰跨▼鎵鑾峰緱鐨勫肩浉鍚屻傜壒鍒槸錛屽鏋滃叾浠栫殑綰跨▼淇敼浜唅1 鐨勫鹼紝閭d箞褰撳墠綰跨▼鑾峰緱鐨刬1 鐨勫煎彲鑳戒笌淇敼鍚庣殑鍊兼湁鎵宸埆銆傚疄闄呬笂錛孞ava 鏈変竴縐嶄富鍐呭瓨鐨勬満鍒訛紝浣跨敤涓涓富鍐呭瓨鏉ヤ繚瀛樺彉閲忓綋鍓嶇殑姝g‘鐨勫箋傜嚎紼嬪皢鍙橀噺鐨勫兼嫹璐濆埌鑷繁鐙珛鐨勫唴瀛樹腑錛岃岃繖浜涚嚎紼嬬殑鍐呭瓨鎷瘋礉鍙兘涓庝富鍐呭瓨涓殑鍊間笉鍚屻傛墍浠ュ疄闄呭綋涓彲鑳藉彂鐢熻繖鏍風(fēng)殑鎯呭喌錛屽湪涓誨唴瀛樹腑i1 鐨勫間負(fù)1 錛岀嚎紼? 鍜岀嚎紼? 閮芥洿鏀逛簡i1 錛屼絾鏄嵈娌℃妸鏇存柊鐨勫間紶鍥炵粰涓誨唴瀛樻垨鍏朵粬綰跨▼涓紝閭d箞鍙兘鍦ㄧ嚎紼? 涓璱1 鐨勫間負(fù)2錛岀嚎紼? 涓璱1 鐨勫煎嵈涓?nbsp;3 銆?/span>

鍙︿竴鏂歸潰錛実eti2() 鍙互鏈夋晥鐨勪粠涓誨唴瀛樹腑鑾峰彇i2 鐨勫箋備竴涓獀olatile 綾誨瀷鐨勫彉閲忎笉鍏佽綰跨▼浠庝富鍐呭瓨涓皢鍙橀噺鐨勫兼嫹璐濆埌鑷繁鐨勫瓨鍌ㄧ┖闂淬傚洜姝わ紝涓涓0鏄庝負(fù)volatile 綾誨瀷鐨勫彉閲忓皢鍦ㄦ墍鏈夌殑綰跨▼涓悓姝ョ殑鑾峰緱鏁版嵁錛屼笉璁轟綘鍦ㄤ換浣曠嚎紼嬩腑鏇存敼浜嗗彉閲忥紝鍏朵粬鐨勭嚎紼嬪皢绔嬪嵆寰楀埌鍚屾牱鐨勭粨鏋溿傜敱浜庣嚎紼嬪瓨鍙栨垨鏇存敼鑷繁鐨勬暟鎹嫹璐濇湁鏇撮珮鐨勬晥鐜囷紝鎵浠olatile 綾誨瀷鍙橀噺鍦ㄦц兘涓婃湁鎵娑堣椼?/span>

閭d箞濡傛灉volatile 鍙橀噺宸茬粡鍙互浣挎暟鎹湪綰跨▼闂村悓姝ワ紝閭d箞synchronizes 鐢ㄦ潵騫蹭粈涔堝憿錛熶袱鑰呮湁涓ゆ柟闈㈢殑涓嶅悓銆傞鍏堬紝synchronized 鑾峰彇鍜岄噴鏀劇敱鐩戝惉鍣ㄦ帶鍒剁殑閿侊紝濡傛灉涓や釜綰跨▼閮戒嬌鐢ㄤ竴涓洃鍚櫒( 鍗崇浉鍚屽璞¢攣) 錛岄偅涔堢洃鍚櫒鍙互寮哄埗鍦ㄤ竴涓椂鍒誨彧鏈変竴涓嚎紼嬭兘澶勭悊浠g爜鍧楋紝榪欐槸鏈涓鑸殑鍚屾銆傚彟澶栵紝synchronized 榪樿兘浣垮唴瀛樺悓姝ャ傚湪瀹為檯褰撲腑錛宻ynchronized 浣垮緱鎵鏈夌殑綰跨▼鍐呭瓨涓庝富鍐呭瓨鐩稿悓姝ャ傛墍浠eti3() 鐨勬墽琛岃繃紼嬪涓嬶細(xì)

1.    綰跨▼浠庣洃鍚櫒鑾峰彇瀵硅薄鐨勯攣銆? 榪欓噷鍋囪鐩戝惉鍣ㄩ潪閿侊紝鍚﹀垯綰跨▼鍙湁絳夊埌鐩戝惉鍣ㄨВ閿佹墠鑳借幏鍙栧璞¢攣)

2.    綰跨▼鍐呭瓨鏇存柊鎵鏈?/strong> 鐨勫彉閲忥紝涔熷氨鏄浠栧皢璇誨彇涓誨唴瀛樹腑鐨勫彉閲忎嬌鑷繁鐨勫彉閲忎繚璇佹湁鏁堛?JVM 浼?xì)鋴社敤涓涓?#8220;鑴?#8221;鏍囧織鏉ユ渶浼樺寲榪囩▼錛屼嬌寰椾粎浠呭叿鏈?#8220;鑴?#8221;鏍囧織鍙橀噺琚洿鏂般傝緇嗙殑鎯呭喌鏌ヨJAVA瑙勮寖鐨?7.9)

3.    浠g爜鍧楄鎵ц( 鍦ㄨ繖涓緥瀛愪腑錛岃緗繑鍥炲間負(fù)鍒氬垰浠庝富鍐呭瓨閲嶇疆鐨刬3 褰撳墠鐨勫箋?

4.    浠諱綍鍙橀噺鐨勫彉鏇村皢琚啓鍥炲埌涓誨唴瀛樹腑銆備絾鏄繖涓緥瀛愪腑geti3() 娌℃湁浠涔堝彉鍖栥?/span>

5.    綰跨▼閲婃斁瀵硅薄鐨勯攣緇欑洃鍚櫒銆?/span>

鎵浠olatile 鍙兘鍦ㄧ嚎紼嬪唴瀛樺拰涓誨唴瀛樹箣闂村悓姝ヤ竴涓彉閲忕殑鍊鹼紝鑰宻ynchronized 鍒欏悓姝ュ湪綰跨▼鍐呭瓨鍜屼富鍐呭瓨涔嬮棿鐨勬墍鏈夊彉閲忕殑鍊鹼紝騫朵笖閫氳繃閿佷綇鍜岄噴鏀劇洃鍚櫒鏉ュ疄鐜般傛樉鐒訛紝synchronized 鍦ㄦц兘涓婂皢姣攙olatile 鏇村姞鏈夋墍娑堣椼?/span>

 

=============鍏充簬涓よ呯殑鍖哄埆===================

1.volatile鏈川鏄湪鍛婅瘔jvm褰撳墠鍙橀噺鍦ㄥ瘎瀛樺櫒錛堝伐浣滃唴瀛橈級涓殑鍊兼槸涓嶇‘瀹氱殑錛岄渶瑕佷粠涓誨瓨涓鍙栵紱synchronized鍒欐槸閿佸畾褰撳墠鍙橀噺錛屽彧鏈夊綋鍓嶇嚎紼嬪彲浠ヨ闂鍙橀噺錛屽叾浠栫嚎紼嬭闃誨浣忋?nbsp;
2.volatile浠呰兘浣跨敤鍦ㄥ彉閲忕駭鍒紱synchronized鍒欏彲浠ヤ嬌鐢ㄥ湪鍙橀噺銆佹柟娉曘佸拰綾葷駭鍒殑 
3.volatile浠呰兘瀹炵幇鍙橀噺鐨勪慨鏀瑰彲瑙佹э紝涓嶈兘淇濊瘉鍘熷瓙鎬?/span> 錛涜宻ynchronized鍒欏彲浠ヤ繚璇佸彉閲忕殑淇敼鍙鎬у拰鍘熷瓙鎬?nbsp;
4.volatile涓嶄細(xì)閫犳垚綰跨▼鐨勯樆濉烇紱synchronized鍙兘浼?xì)閫犳垚綰跨▼鐨勯樆濉炪?nbsp;
5.volatile鏍囪鐨勫彉閲忎笉浼?xì)琚~栬瘧鍣ㄤ紭鍖栵紱synchronized鏍囪鐨勫彉閲忓彲浠ヨ緙栬瘧鍣ㄤ紭鍖?/p>

 

綰㈠瓧浣撻儴鍒嗙殑鍘熷洜濡備笅錛?br />綰跨▼A淇敼浜嗗彉閲忚繕娌$粨鏉熸椂,鍙﹀鐨勭嚎紼婤鍙互鐪嬪埌宸蹭慨鏀圭殑鍊?鑰屼笖鍙互淇敼榪欎釜鍙橀噺,鑰屼笉鐢ㄧ瓑寰匒閲婃斁閿?鍥犱負(fù)Volatile 鍙橀噺娌′笂閿?/p>

abing 2012-10-19 13:36 鍙戣〃璇勮
]]>
java 姝婚攣http://www.tkk7.com/abin/archive/2012/10/17/389745.htmlabingabingWed, 17 Oct 2012 07:48:00 GMThttp://www.tkk7.com/abin/archive/2012/10/17/389745.htmlhttp://www.tkk7.com/abin/comments/389745.htmlhttp://www.tkk7.com/abin/archive/2012/10/17/389745.html#Feedback0http://www.tkk7.com/abin/comments/commentRss/389745.htmlhttp://www.tkk7.com/abin/services/trackbacks/389745.html姝婚攣 姝婚攣鏄繖鏍蜂竴縐嶆儏褰細(xì)澶氫釜綰跨▼鍚屾椂琚樆濉烇紝瀹冧滑涓殑涓涓垨鑰呭叏閮ㄩ兘鍦ㄧ瓑寰呮煇涓祫婧愯閲婃斁銆傜敱浜庣嚎紼嬭鏃犻檺鏈熷湴闃誨錛屽洜姝ょ▼搴忎笉鍙兘姝e父緇堟銆? 瀵艱嚧姝婚攣鐨勬牴婧愬湪浜庝笉閫傚綋鍦拌繍鐢?#8220;synchronized”鍏抽敭璇嶆潵綆$悊綰跨▼瀵圭壒瀹氬璞$殑璁塊棶銆?#8220;synchronized”鍏抽敭璇嶇殑浣滅敤鏄紝紜繚鍦ㄦ煇涓椂鍒誨彧鏈変竴涓嚎紼嬭鍏佽鎵ц鐗瑰畾鐨勪唬鐮佸潡錛屽洜姝わ紝琚厑璁告墽琛岀殑綰跨▼棣栧厛蹇呴』鎷ユ湁瀵瑰彉閲忔垨瀵硅薄鐨勬帓浠栨х殑璁塊棶鏉冦傚綋綰跨▼璁塊棶瀵硅薄鏃訛紝綰跨▼浼?xì)缁欏璞″姞閿佸Q岃岃繖涓攣瀵艱嚧鍏跺畠涔熸兂璁塊棶鍚屼竴瀵硅薄鐨勭嚎紼嬭闃誨錛岀洿鑷崇涓涓嚎紼嬮噴鏀懼畠鍔犲湪瀵硅薄涓婄殑閿併? 鐢變簬榪欎釜鍘熷洜錛屽湪浣跨敤“synchronized”鍏抽敭璇嶆椂錛屽緢瀹規(guī)槗鍑虹幇涓や釜綰跨▼浜掔浉絳夊緟瀵規(guī)柟鍋氬嚭鏌愪釜鍔ㄤ綔鐨勬儏褰€備唬鐮佷竴鏄竴涓鑷存閿佺殑綆鍗曚緥瀛愩? //浠g爜涓 class Deadlocker { int field_1; private Object lock_1 = new int[1]; int field_2; private Object lock_2 = new int[1]; public void method1(int value) { “synchronized” (lock_1) { “synchronized” (lock_2) { field_1 = 0; field_2 = 0; } } } public void method2(int value) { “synchronized” (lock_2) { “synchronized” (lock_1) { field_1 = 0; field_2 = 0; } } } } 鍙傝冧唬鐮佷竴錛岃冭檻涓嬮潰鐨勮繃紼嬶細(xì) ◆ 涓涓嚎紼嬶紙ThreadA錛夎皟鐢╩ethod1()銆? ◆ ThreadA鍦╨ock_1涓婂悓姝ワ紝浣嗗厑璁歌鎶㈠厛鎵ц銆? ◆ 鍙︿竴涓嚎紼嬶紙ThreadB錛夊紑濮嬫墽琛屻? ◆ ThreadB璋冪敤method2()銆? ◆ ThreadB鑾峰緱lock_2錛岀戶緇墽琛岋紝浼佸浘鑾峰緱lock_1銆備絾ThreadB涓嶈兘鑾峰緱lock_1錛屽洜涓篢hreadA鍗犳湁lock_1銆? ◆ 鐜板湪錛孴hreadB闃誨錛屽洜涓哄畠鍦ㄧ瓑寰匱hreadA閲婃斁lock_1銆? ◆ 鐜板湪杞埌ThreadA緇х畫鎵ц銆俆hreadA璇曞浘鑾峰緱lock_2錛屼絾涓嶈兘鎴愬姛錛屽洜涓簂ock_2宸茬粡琚玊hreadB鍗犳湁浜嗐? ◆ ThreadA鍜孴hreadB閮借闃誨錛岀▼搴忔閿併? 褰撶劧錛屽ぇ澶氭暟鐨勬閿佷笉浼?xì)杩欎箞鏄捐屾槗瑙侊紝闇瑕佷粩緇嗗垎鏋愪唬鐮佹墠鑳界湅鍑猴紝瀵逛簬瑙勬ā杈冨ぇ鐨勫綰跨▼紼嬪簭鏉ヨ灝ゅ叾濡傛銆傚ソ鐨勭嚎紼嬪垎鏋愬伐鍏鳳紝渚嬪JProbe Threadalyzer鑳藉鍒嗘瀽姝婚攣騫舵寚鍑轟駭鐢熼棶棰樼殑浠g爜浣嶇疆銆? 闅愭ф閿? 闅愭ф閿佺敱浜庝笉瑙勮寖鐨勭紪紼嬫柟寮忓紩璧鳳紝浣嗕笉涓瀹氭瘡嬈℃祴璇曡繍琛屾椂閮戒細(xì)鍑虹幇紼嬪簭姝婚攣鐨勬儏褰€傜敱浜庤繖涓師鍥狅紝涓浜涢殣鎬ф閿佸彲鑳借鍒板簲鐢ㄦ寮忓彂甯冧箣鍚庢墠浼?xì)琚彂鐜板Q屽洜姝ゅ畠鐨勫嵄瀹蟲ф瘮鏅氭閿佹洿澶с備笅闈粙緇嶄袱縐嶅鑷撮殣鎬ф閿佺殑鎯呭喌錛氬姞閿佹搴忓拰鍗犳湁騫剁瓑寰呫? 鍔犻攣嬈″簭 褰撳涓茍鍙戠殑綰跨▼鍒嗗埆璇曞浘鍚屾椂鍗犳湁涓や釜閿佹椂錛屼細(xì)鍑虹幇鍔犻攣嬈″簭鍐茬獊鐨勬儏褰€傚鏋滀竴涓嚎紼嬪崰鏈変簡鍙︿竴涓嚎紼嬪繀闇鐨勯攣錛屽氨鏈夊彲鑳藉嚭鐜版閿併傝冭檻涓嬮潰鐨勬儏褰紝ThreadA鍜孴hreadB涓や釜綰跨▼鍒嗗埆闇瑕佸悓鏃舵嫢鏈塴ock_1銆乴ock_2涓や釜閿侊紝鍔犻攣榪囩▼鍙兘濡備笅錛? ◆ ThreadA鑾峰緱lock_1錛? ◆ ThreadA琚姠鍗狅紝VM璋冨害紼嬪簭杞埌ThreadB錛? ◆ ThreadB鑾峰緱lock_2錛? ◆ ThreadB琚姠鍗狅紝VM璋冨害紼嬪簭杞埌ThreadA錛? ◆ ThreadA璇曞浘鑾峰緱lock_2錛屼絾lock_2琚玊hreadB鍗犳湁錛屾墍浠hreadA闃誨錛? ◆ 璋冨害紼嬪簭杞埌ThreadB錛? ◆ ThreadB璇曞浘鑾峰緱lock_1錛屼絾lock_1琚玊hreadA鍗犳湁錛屾墍浠hreadB闃誨錛? ◆ ThreadA鍜孴hreadB姝婚攣銆? 蹇呴』鎸囧嚭鐨勬槸錛屽湪浠g爜涓濇涓嶅仛鍙樺姩鐨勬儏鍐典笅錛屾湁浜涙椂鍊欎笂榪版閿佽繃紼嬩笉浼?xì)鍑虹帋图孷M璋冨害紼嬪簭鍙兘璁╁叾涓竴涓嚎紼嬪悓鏃惰幏寰條ock_1鍜宭ock_2涓や釜閿侊紝鍗崇嚎紼嬭幏鍙栦袱涓攣鐨勮繃紼嬫病鏈夎涓柇銆傚湪榪欑鎯呭艦涓嬶紝甯歌鐨勬閿佹嫻嬪緢闅劇‘瀹氶敊璇墍鍦ㄣ? 鍗犳湁騫剁瓑寰? 濡傛灉涓涓嚎紼嬭幏寰椾簡涓涓攣涔嬪悗榪樿絳夊緟鏉ヨ嚜鍙︿竴涓嚎紼嬬殑閫氱煡錛屽彲鑳藉嚭鐜板彟涓縐嶉殣鎬ф閿侊紝鑰冭檻浠g爜浜屻? //浠g爜浜?public class queue { static java.lang.Object queueLock_; Producer producer_; Consumer consumer_; public class Producer { void produce() { while (!done) { “synchronized” (queueLock_) { produceItemAndAddItToQueue(); “synchronized” (consumer_) { consumer_.notify(); } } } } public class Consumer { consume() { while (!done) { “synchronized” (queueLock_) { “synchronized” (consumer_) { consumer_.wait(); } removeItemFromQueueAndProcessIt(); } } } } } } 鍦ㄤ唬鐮佷簩涓紝Producer鍚戦槦鍒楀姞鍏ヤ竴欏規(guī)柊鐨勫唴瀹瑰悗閫氱煡Consumer錛屼互渚垮畠澶勭悊鏂扮殑鍐呭銆傞棶棰樺湪浜庯紝Consumer鍙兘淇濇寔鍔犲湪闃熷垪涓婄殑閿侊紝闃繪Producer璁塊棶闃熷垪錛岀敋鑷沖湪Consumer絳夊緟Producer鐨勯氱煡鏃朵篃浼?xì)鐟艟l繚鎸侀攣銆傝繖鏍鳳紝鐢變簬Producer涓嶈兘鍚戦槦鍒楁坊鍔犳柊鐨勫唴瀹癸紝鑰孋onsumer鍗村湪絳夊緟Producer鍔犲叆鏂板唴瀹圭殑閫氱煡錛岀粨鏋滃氨瀵艱嚧浜嗘閿併? 鍦ㄧ瓑寰呮椂鍗犳湁鐨勯攣鏄竴縐嶉殣鎬х殑姝婚攣錛岃繖鏄洜涓轟簨鎯呭彲鑳芥寜鐓ф瘮杈冪悊鎯崇殑鎯呭喌鍙戝睍—Producer綰跨▼涓嶉渶瑕佽Consumer鍗犳嵁鐨勯攣銆傚敖綆″姝わ紝闄ら潪鏈夌粷瀵瑰彲闈犵殑鐞嗙敱鑲畾Producer綰跨▼姘歌繙涓嶉渶瑕佽閿侊紝鍚﹀垯榪欑緙栫▼鏂瑰紡浠嶆槸涓嶅畨鍏ㄧ殑銆傛湁鏃?#8220;鍗犳湁騫剁瓑寰?#8221;榪樺彲鑳藉紩鍙戜竴榪炰覆鐨勭嚎紼嬬瓑寰咃紝渚嬪錛岀嚎紼婣鍗犳湁綰跨▼B闇瑕佺殑閿佸茍絳夊緟錛岃岀嚎紼婤鍙堝崰鏈夌嚎紼婥闇瑕佺殑閿佸茍絳夊緟絳夈? 瑕佹敼姝d唬鐮佷簩鐨勯敊璇紝鍙渶淇敼Consumer綾伙紝鎶妛ait()縐誨嚭“synchronized”()鍗沖彲銆?/pre>

abing 2012-10-17 15:48 鍙戣〃璇勮
]]>
Java 涓夌鏂瑰紡瀹炵幇澶氱嚎紼?/title><link>http://www.tkk7.com/abin/archive/2012/10/12/389494.html</link><dc:creator>abing</dc:creator><author>abing</author><pubDate>Fri, 12 Oct 2012 15:43:00 GMT</pubDate><guid>http://www.tkk7.com/abin/archive/2012/10/12/389494.html</guid><wfw:comment>http://www.tkk7.com/abin/comments/389494.html</wfw:comment><comments>http://www.tkk7.com/abin/archive/2012/10/12/389494.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/abin/comments/commentRss/389494.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/abin/services/trackbacks/389494.html</trackback:ping><description><![CDATA[<div>絎竴縐嶏細(xì)錛圱hread錛?br /> <p>package com.abin.lee.servlet.mythread.thread;</p> <p>public class Mythread extends Thread{<br /> private String name;<br /> public Mythread(String name) {<br />  this.name=name;<br /> }<br /> public void run() {<br />  synchronized(this.name){<br />   System.out.println("寮濮嬫椂闂達(dá)細(xì)"+System.currentTimeMillis()+",綰跨▼鍚嶅瓧錛?+Thread.currentThread().getName());<br />   System.out.println("name="+name);<br />   System.out.println("緇撴潫鏃墮棿錛?+System.currentTimeMillis()+",綰跨▼鍚嶅瓧錛?+Thread.currentThread().getName());<br /> <br />  }<br /> }<br /> <br />}<br /></p><br /><br />嫻嬭瘯浠g爜錛?br /> <p>package com.abin.lee.servlet.mythread.thread;</p> <p>public class MythreadTest {<br /> public static void main(String[] args) {<br />  Mythread mythread1=new Mythread("ManyThread");<br />  Mythread mythread2=new Mythread("ManyThread");<br />  mythread1.start();<br />  mythread2.start();<br /> }</p> <p>}<br /></p><br /><br /><br />絎簩縐嶏細(xì)錛圧unnable錛?br /> <p>package com.abin.lee.servlet.mythread.runnable;</p> <p>public class MyRunnable implements Runnable{<br /> private String name;<br /> public MyRunnable(String name) {<br />  this.name=name;<br /> }<br /> public synchronized void run(){<br />   System.out.println("寮濮嬫椂闂達(dá)細(xì)"+System.currentTimeMillis()+",綰跨▼鍚嶅瓧錛?+Thread.currentThread().getName());<br />   System.out.println("name="+name);<br />   try {<br />    Thread.sleep(3000);<br />   } catch (InterruptedException e) {<br />    e.printStackTrace();<br />   }<br />   System.out.println("緇撴潫鏃墮棿錛?+System.currentTimeMillis()+",綰跨▼鍚嶅瓧錛?+Thread.currentThread().getName());<br /> }<br />}<br /></p><br /><br /><br />嫻嬭瘯浠g爜錛?br /> <p>package com.abin.lee.servlet.mythread.runnable;</p> <p>public class MyRunnableTest {<br /> public static void main(String[] args) {<br />  MyRunnable myRunnable=new MyRunnable("ManyThread");<br />  Thread thread1=new Thread(myRunnable);<br />  Thread thread2=new Thread(myRunnable);<br />  thread1.start();<br />  thread2.start();<br /> }<br />}<br /></p><br /><br /><br />絎笁縐嶏細(xì)錛圕allable錛夎繖縐嶈鏄庝竴涓嬶紝榪欎釜瀹炵幇澶氱嚎紼嬬殑鏂瑰紡鏄湪JDK1.5寮曡繘鐨勶紝鍦╦ava.util.concurrent.Callable  榪欎釜騫跺彂鍖呬笅闈紝騫朵笖鎻愪緵鍚屾榪斿洖緇撴灉鐨勫綰跨▼銆?br /> <p>package com.abin.lee.servlet.mythread.callable;</p> <p>import java.util.concurrent.Callable;<br />import java.util.concurrent.locks.Lock;<br />import java.util.concurrent.locks.ReentrantLock;</p> <p>public class MyCallable implements Callable<String>{<br /> private String name;<br /> public MyCallable(String name) {<br />  this.name=name;<br /> }<br /> public String call() throws Exception {<br />  Lock lock=new ReentrantLock();<br />  lock.lock();<br />  String result="";<br />  try {<br />   System.out.println("寮濮嬫椂闂達(dá)細(xì)"+System.currentTimeMillis()+",綰跨▼鍚嶅瓧錛?+Thread.currentThread().getName());<br />   System.out.println("name="+name);<br />   if(name.equals("ManyThread")){<br />    result="success";<br />   }else{<br />    result="failure";<br />   }<br />   try {<br />    Thread.sleep(3000);<br />   } catch (InterruptedException e) {<br />    e.printStackTrace();<br />   }<br />   System.out.println("緇撴潫鏃墮棿錛?+System.currentTimeMillis()+",綰跨▼鍚嶅瓧錛?+Thread.currentThread().getName());<br /> <br />  } catch (Exception e) {<br />   e.printStackTrace();<br />  }finally{<br />   lock.unlock();<br />  }<br /><br />   return result;<br />  <br /> }<br /> <br />}<br /></p><br /><br /><br />嫻嬭瘯浠g爜錛?br /> <p>package com.abin.lee.servlet.mythread.callable;</p> <p>import java.util.concurrent.ExecutionException;<br />import java.util.concurrent.ExecutorService;<br />import java.util.concurrent.Executors;<br />import java.util.concurrent.Future;</p> <p>import org.junit.Test;</p> <p>public class MyCallableTest {<br /> @Test<br /> public void testMyCallable() throws InterruptedException, ExecutionException{<br />  ExecutorService executor=Executors.newFixedThreadPool(3);<br />  MyCallable myCallable=new MyCallable("ManyThread");<br />  Future future1=executor.submit(myCallable);<br />  System.out.println("future1="+future1.get());<br />  Future future2=executor.submit(myCallable);<br />  System.out.println("future2="+future2.get());<br />  Future future3=executor.submit(myCallable);<br />  System.out.println("future3="+future3.get());<br />  <br /> }</p> <p>}<br /><br />嫻嬭瘯緇撴灉錛?br /></p><div>寮濮嬫椂闂達(dá)細(xì)1350056647659,綰跨▼鍚嶅瓧錛歱ool-1-thread-1</div><div>name=ManyThread</div><div>緇撴潫鏃墮棿錛?350056650661,綰跨▼鍚嶅瓧錛歱ool-1-thread-1</div><div>future1=success</div><div>寮濮嬫椂闂達(dá)細(xì)1350056650661,綰跨▼鍚嶅瓧錛歱ool-1-thread-2</div><div>name=ManyThread</div><div>緇撴潫鏃墮棿錛?350056653661,綰跨▼鍚嶅瓧錛歱ool-1-thread-2</div><div>future2=success</div><div>寮濮嬫椂闂達(dá)細(xì)1350056653662,綰跨▼鍚嶅瓧錛歱ool-1-thread-3</div><div>name=ManyThread</div><div>緇撴潫鏃墮棿錛?350056656663,綰跨▼鍚嶅瓧錛歱ool-1-thread-3</div><div>future3=success</div><div></div><p> </p></div><img src ="http://www.tkk7.com/abin/aggbug/389494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/abin/" target="_blank">abing</a> 2012-10-12 23:43 <a href="http://www.tkk7.com/abin/archive/2012/10/12/389494.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://aiwoqi.com" target="_blank">精品国产呦系列在线观看免费</a>| <a href="http://kph37.com" target="_blank">亚洲av成人一区二区三区观看在线 </a>| <a href="http://513573.com" target="_blank">午夜精品免费在线观看 </a>| <a href="http://499k.com" target="_blank">**毛片免费观看久久精品</a>| <a href="http://bixnu.com" target="_blank">亚洲国产成人一区二区精品区 </a>| <a href="http://xy996688.com" target="_blank">国产成人精品123区免费视频</a>| <a href="http://43caopen.com" target="_blank">久久国产亚洲精品</a>| <a href="http://czdlglass.com" target="_blank">国产美女在线精品免费观看</a>| <a href="http://26672814.com" target="_blank">亚洲1234区乱码</a>| <a href="http://mtripmall.com" target="_blank">成人无码区免费视频观看</a>| <a href="http://4438xa48.com" target="_blank">亚洲AV无码精品蜜桃</a>| <a href="http://worldbiao.com" target="_blank">噜噜嘿在线视频免费观看</a>| <a href="http://gzltchem.com" target="_blank">亚洲爆乳成av人在线视菜奈实</a>| <a href="http://schygfz.com" target="_blank">日韩高清在线免费看</a>| <a href="http://0149545.com" target="_blank">免费人成再在线观看网站</a>| <a href="http://91xx8.com" target="_blank">亚洲人成国产精品无码</a>| <a href="http://bisi666.com" target="_blank">免费一级不卡毛片</a>| <a href="http://czhos.com" target="_blank">亚洲一级在线观看</a>| <a href="http://9981tv.com" target="_blank">国产小视频免费观看</a>| <a href="http://127ht.com" target="_blank">久久久久女教师免费一区</a>| <a href="http://shbailongma.com" target="_blank">亚洲AV无码专区亚洲AV伊甸园</a>| <a href="http://wdjiuye.com" target="_blank">久久aa毛片免费播放嗯啊</a>| <a href="http://caoliusq1024.com" target="_blank">97se亚洲综合在线</a>| <a href="http://wivyswap.com" target="_blank">黄页网站免费观看</a>| <a href="http://whyandroid.com" target="_blank">亚洲a∨无码一区二区</a>| <a href="http://wwwdf221.com" target="_blank">亚洲午夜激情视频</a>| <a href="http://50077995.com" target="_blank">久久久久免费精品国产</a>| <a href="http://zgxxx.com" target="_blank">亚洲AV无码专区在线亚</a>| <a href="http://ymiwang.com" target="_blank">波多野结衣免费视频观看</a>| <a href="http://1992zyzp.com" target="_blank">久久久精品视频免费观看 </a>| <a href="http://caoliusq1024.com" target="_blank">免费视频成人片在线观看</a>| <a href="http://zzhjnmzp.com" target="_blank">亚洲一级毛片免费看</a>| <a href="http://ccc998.com" target="_blank">亚洲JIZZJIZZ中国少妇中文</a>| <a href="http://shandonghj.com" target="_blank">一级有奶水毛片免费看</a>| <a href="http://hidiaoyan.com" target="_blank">亚洲另类自拍丝袜第1页</a>| <a href="http://jjwgzx.com" target="_blank">mm1313亚洲精品无码又大又粗</a>| <a href="http://b2b-chinese.com" target="_blank">免费无码又爽又刺激网站直播</a>| <a href="http://51nianyefan.com" target="_blank">亚洲成a人片在线观看播放</a>| <a href="http://sk7758.com" target="_blank">日本特黄a级高清免费大片</a>| <a href="http://oupur.com" target="_blank">免费a级毛片无码a∨免费软件</a>| <a href="http://kanzhelu23.com" 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>