AsyncTask被設(shè)計出來的目的就是為了滿足Android的特殊需求:非主線程不能操作(UI)組件,所以AsyncTask擴展Thread增強了與主線程的交互的能力。如果你的應(yīng)用沒有與主線程交互,那么就直接使用Thread就好了。
站在用戶的角度思考問題,與客戶深入溝通,找到五家渠網(wǎng)站設(shè)計與五家渠網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋五家渠地區(qū)。線程的開銷是非常大的,特別是創(chuàng)建一個新線程,否則就不必設(shè)計線程池之類的工具了。當(dāng)需要大量線程執(zhí)行任務(wù)時,一定要創(chuàng)建線程池,無論是使用AsyncTask還是Thread,因為使用AsyncTask它內(nèi)部的線程池有數(shù)量限制,可能無法滿足需求;使用Thread更是要線程池來管理,避免虛擬機創(chuàng)建大量的線程。比如從網(wǎng)絡(luò)上批量下載圖片,你不想一個一個的下,或者5個5個的下載,那么就創(chuàng)建一個CorePoolSize為10或者20的線程池,每次10個或者20個這樣的下載,即滿足了速度,又不至于耗費無用的性能開銷去無限制的創(chuàng)建線程。
默認的AsyncTask不一定會立即執(zhí)行你的任務(wù),除非你提供給他一個單獨的線程池。如果不與主線程交互,直接創(chuàng)建一個Thread就可以了,雖然創(chuàng)建線程開銷比較大,但如果這不是批量操作就沒有問題。