鍘熷垱浣滃搧锛屽厑璁歌浆杞斤紝杞浇鏃惰鍔″繀浠ヨ秴閾炬帴褰㈠紡鏍囨槑鏂囩珷 鍘熷鍑哄 銆佷綔鑰呬俊鎭拰鏈0鏄庛€傚惁鍒欏皢杩界┒娉曞緥璐d换銆?a target="_blank" href="http://mzh3344258.blog.51cto.com/1823534/1313611" style="padding:0px; margin:0px; color:rgb(75,0,2); text-decoration:none">http://mzh3344258.blog.51cto.com/1823534/1313611Android绾跨▼姹犱娇鐢ㄧ粓缁撶増
鏈変竴娈垫椂闂存病鍐欏崥鏂囦簡锛屼粖澶╂娊绌烘€荤粨涓€涓嬶紝涔熷笇鏈涜兘閫氳繃鑷繁鍐欑殑杩欎簺鏂囩珷锛屽姞娣辩悊瑙g殑鍚屾椂鑳藉府
鍔╁湪鎶€鏈柟闈㈡湁鐤戠偣鐨勬湅鍙嬫悶娓呮涓墍浠ョ劧鏉ワ紝鐢变簬缁忓父浼氬湪缃戜笂鎴栫兢閲岀湅鍒版湁鏈嬪弸浼氶棶绾跨▼鏂归潰鐨?/span>
涓滆タ锛屽氨鍍忔垜涓€涓湅鍙嬩粬浠€佸笀璁茬殑锛孞2SE銆丣2EE閲岄潰浣跨敤鐨勭嚎绋嬫柟闈㈢殑涓滆タ鍙兘涓嶆槸澶锛屼絾鏄?/span>
鍦ˋndroid寮€鍙戦噷闈紝鐜╃殑灏辨槸绾跨▼锛圲IThread锛夛紒濂戒簡锛屽簾璇濆氨璇磋繖涔堝鍚э紝鐩村叆姝i锛佷粖澶╄璁茬殑
涓滆タ灏辨槸绾跨▼姹犮€佺嚎绋嬬殑楂樻晥鐜囦娇鐢紝鐏垫椿鎺у埗锛佷粖澶╂椹垜灏辩敤鏈€甯哥敤鐨勫嚑绉嶆柟寮忔潵鍒嗗埆瀹炵幇搴旂敤
涓娇鐢ㄧ殑绾跨▼鏂归潰鐨勭煡璇嗭紝锛堝叡鍐欎簡涓や釜涓嶅悓鍏ュ彛鐨凙ctivity鏉ュ垎寮€涓嶅悓鐨勫疄鐜版柟寮忥紝澶у鍙互鑷娉?/span>
閲夾ndroidManifest.xml涓殑Launch鍏ュ彛鎴栨墦寮€娉ㄩ噴锛変换浣曞彂浠g爜涓殑鍏蜂綋瀹炵幇鏁堟灉锛屽ソ浜嗭紝鍏堥殢渚垮垪
鍑犱釜鍚э紝濡傦細AsyncTask銆丷unnable銆乀hread銆乀hreadPool銆丒xecutors绛夌瓑鐨勪娇鐢紝鐪嬫垜鏂囩珷鐨勬湅
鍙嬪簲璇ラ兘寰堟竻妤氬皬椹殑鏂瑰紡鍟︼紝鏋滄柇鍏堜笂鏁堟灉锛屽啀涓€姝ユ鍒嗚В浠g爜锛屾潵鍚э紝鏁堟灉鍥惧涓嬶細
涓€锛氭棤澶у皬闄愬埗鐨勭嚎绋嬫睜鎵ц鏁堟灉濡備笅
浜岋細闄愬埗鎸夐『搴忔潵鎵ц浠诲姟鐨勭嚎绋嬫睜鏁堟灉濡備笅

涓夛細涓€涓竴涓换鍔$殑鎵ц绾跨▼姹犳晥鏋滃涓嬶紙涓庢寜椤哄簭鎵ц鏁堟灉鏄竴鏍风殑锛屽彧鏄唴閮ㄥ疄鐜扮◢鏈変笉鍚岋級

鍥涳細鎸夋寚瀹氫釜鏁版潵鎵ц浠诲姟鐨勭嚎绋嬫睜鏁堟灉濡備笅

浜旓細鍒涘缓涓€涓彲鍦ㄦ寚瀹氭椂闂撮噷鎵ц浠诲姟鐨勭嚎绋嬫睜锛屼害鍙噸澶嶆墽琛?涓嶅父鐢紝鏁堟灉涓庡洓鐩稿悓

鍏細鎸夋寚瀹氬伐鍘傛ā寮忔潵鎵ц鐨勭嚎绋嬫睜锛屾晥鏋滀笌鍥涖€佷簲涓€鏍凤紝浣嗙敤鏂瑰紡鍏垱寤虹殑绾跨▼姹犻兘鏈夊湪宸ュ巶
涓寚瀹氱殑绾跨▼灞炴€э紝姣斿锛氱嚎绋嬪悕瀛椼€佹槸鍚︿负鐢ㄦ埛绾跨▼绛夌瓑灞炴€?/span>

涓冿細绾跨▼姹犱腑浠诲姟鎵ц鏃跺彲鏆傚仠鏁堟灉鍥惧涓?/span>

鍏細鐢≧unnable銆丆oncurrentLinkedQueue銆丆oncurrentMap銆丗uture銆丒xecutorService鍏宠仈瀹炵幇鐨勬晥鏋滃浘濡備笅

鍝︾殑浜嗭紝鏁堟灉鐪嬪畬浜嗭紝鐜板湪灏辫澶у鑷淇敼AndroidManifest.xml涓富Activity鐨勫叆鍙f潵鐪嬩袱绉嶄笉鍚屾柟寮忓疄鐜扮殑浠g爜鏁堟灉鍚э紝棣栧厛锛屽厛璐翠竴涓婱ain.java绫荤殑浠g爜锛屽笇鏈涘ぇ瀹惰缁嗙湅閲岄潰鐨勬敞閲婏紝涓€瀹氳璇︾粏鐪嬶紝浣犱笉浼氬悆浜忕殑锛岀浉淇℃垜锛侊紙澶囨敞锛氫负浜嗗啓鏂囩珷鍔犳敞閲婅繕鏈夋煡鎵剧殑鏃跺€欐柟渚匡紝灏忛┈鎶婃墍鏈夌殑涓荤被鍙婅緟鍔╃被浠ュ唴閮ㄧ被鐨勫舰寮忓啓鍒颁竴涓?java鏂囦欢閲岄潰浜嗭紝濡傛灉鏈嬪弸浠寰楃湅鐫€涔憋紝涓嶇埥鐨勮瘽锛屽彲浠ヨ嚜琛屽皢閲岄潰鐨勭被鎶藉彇鍒板崟鐙殑.java鏂囦欢涓紝鍑犲垎閽熸悶瀹氱殑浜嬶紒锛?/span>
鏂瑰紡涓€锛堢函ExecutorService銆丄syncTask銆丷unnable鍏宠仈瀹炵幇鐩稿叧鏂囦欢濡備笅锛夛細
1.1锛氫富绫绘枃浠?Main.java)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353 | |
1.2锛氬竷灞€鏂囦欢
123456789101112131415 | <? xml version = "1.0" encoding = "utf-8" ?> < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "match_parent" android:layout_height = "match_parent" android:paddingLeft = "10dip" android:paddingRight = "10dip" android:orientation = "vertical" > < ListView android:id = "@+id/task_list" android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:divider = "#cccccc" android:dividerHeight = "0.6dip" android:footerDividersEnabled = "true" android:headerDividersEnabled = "true" /> </ LinearLayout > |
鏂瑰紡浜岋紙Runnable銆丆oncurrentLinkedQueue銆丆oncurrentMap銆丗uture銆丒xecutorService鍏宠仈瀹炵幇鐨勭浉鍏虫枃浠跺涓嬶級锛?/span>
2.1:涓荤被鏂囦欢(MyRunnableActivity.java)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 | |
2.2:杈呭姪绫伙紙MyRunnable.java锛?/span>
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | |
2.3:甯冨眬鏂囦欢
123456789101112131415161718192021222324252627282930313233343536373839404142 | <? xml version = "1.0" encoding = "utf-8" ?> < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "match_parent" android:layout_height = "match_parent" android:orientation = "vertical" > < LinearLayout android:layout_width = "match_parent" android:layout_height = "wrap_content" android:orientation = "horizontal" > < Button android:id = "@+id/button5" android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1" android:text = "娣诲姞浠诲姟" /> < Button android:id = "@+id/button1" android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1" android:text = "寮€濮嬩换鍔?quot; /> < Button android:id = "@+id/button2" android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1" android:text = "鍙栨秷浠诲姟" /> < Button android:id = "@+id/button3" android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1" android:text = "閲嶆柊鍔犺浇" /> < Button android:id = "@+id/button4" android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1" android:text = "閲婃斁璧勬簮" /> </ LinearLayout > < include layout = "@layout/my_runnable_merge" /> </ LinearLayout > |
鏂瑰紡涓€銆佹柟寮忎簩鐨勫叏灞€閰嶇疆鏂囦欢AndroidManifest.xml鏂囦欢鐨勯厤缃涓嬶細
12345678910111213141516171819202122232425262728293031 | <? xml version = "1.0" encoding = "utf-8" ?> < manifest xmlns:android = "http://schemas.android.com/apk/res/android" package = "com.xiaoma.threadpooltest" android:versionCode = "1" android:versionName = "1.0" > < uses-sdk android:minSdkVersion = "8" android:targetSdkVersion = "15" /> < application android:allowBackup = "true" android:icon = "@drawable/ic_launcher" android:label = "@string/app_name" android:theme = "@style/APPTheme" > < activity android:name = "Main" android:label = "@string/app_name" > </ activity > < activity android:name = "MyRunnableActivity" android:label = "@string/app_name" > < intent-filter > < action android:name = "android.intent.action.MAIN" /> < category android:name = "android.intent.category.LAUNCHER" /> </ intent-filter > </ activity > </ application > </ manifest > |
濂戒簡锛屼粖澶╄鍐欏唴瀹癸紝澶т綋灏辨槸杩欎簺浜嗭紝椤圭洰鐨勬簮鐮佸ぇ瀹跺彲浠ュ埌闄勪欢涓笅杞斤紝濡傛灉鑳戒粩缁嗙殑灏嗕笂闈㈢殑涓滆タ閮界湅瀹屽苟娑堝寲鐨勮瘽锛岀嚎绋嬫睜鏂归潰鐨勪笢瑗垮彲鑳戒互鍚庡苟涓嶄細澶繃涓洪毦浣犲暒锛佸懙鍛碉紝褰撶劧浜嗭紝灏忛┈杩欎簺浠g爜涓啓鐨勯兘鏄竴浜涙瘮杈冪畝鍗曠殑鍐欐硶锛?/span>浠呬粎鏄娇鐢ㄤ簡鍦ㄧ嚎绋嬩腑浼戠湢鐨勬柟寮忔潵妯℃嫙缃戠粶涓嬭浇锛堣繕鏄釜鍋囪薄锛夛紝濡傛灉鍦ㄥ疄闄呬唬鐮佷腑浣跨敤鏃讹紝灏ゅ叾鍦ㄩ噴鏀捐祫婧愯繖涓€鍧楋紝涓嶈鍙槸鍗曞崟閲婃斁浜嗘垜浠嚜宸辨帶鍒剁殑绾跨▼姹犲強鍏朵换鍔★紝杩樿灏嗙綉缁滆姹傜殑Http涔熶竴鍚岄攢姣佹帀鍝︼紝杩欐牱鎵嶇畻鍋氬埌浜嗗畬缇庯紒鎬ユ€ュ繖蹇欏啓鐨勶紝濡傛灉鏂囩珷涓湁浠€涔堝湴鏂瑰啓鐨勪笉瀵圭殑锛岀湡鐨勫緢甯屾湜Android鑰侀笩銆佽彍楦熼兘鏉ユ寚鐐广€佹彁闂紝浠g爜涓嫢涓嶅鐨勶紝鎴栦笉澶悎鐞嗙殑鍦版柟锛屾湁鏈嬪弸鍙戣浜嗚繕璇峰強鏃舵壒璇勬寚姝o紒灏忛┈鍏堝湪姝よ阿璋㈠ぇ瀹跺暒锛佸姞娌癸紝姣忓ぉ杩涙涓€鐐癸紝鍧氭寔鎬讳細鏈夋敹鑾风殑锛佸簾璇濅笉澶氳浜嗭紝澶у鏅氬畨锛佲€_O鈥?/span>
涓€涓緢骞哥鐨勫潖浜猴紒灏忛┈鏋溿€侀叿_鑾悕绠€鍗?/span>
鏈枃鍑鸿嚜 鈥?a target="_blank" href="http://mzh3344258.blog.51cto.com/" style="padding:0px; margin:0px; color:rgb(75,0,2); text-decoration:none">閰穇鑾悕绠€鍗曘€並Nothing鈥?鍗氬锛岃鍔″繀淇濈暀姝ゅ嚭澶?a target="_blank" href="http://mzh3344258.blog.51cto.com/1823534/1313611" style="padding:0px; margin:0px; color:rgb(75,0,2); text-decoration:none">http://mzh3344258.blog.51cto.com/1823534/1313611