day4 19總結 非同步任務和執行緒池

2021-07-11 15:52:20 字數 1940 閱讀 6673

(1

)asynctask

是乙個工具類,它封裝了

android

中訊息模型的的應用過程,用於簡化訊息傳遞及處理的方式,此類是乙個抽象類,它內部定義的方法有的定義主線程,有的執行在工作執行緒,我們在使用此類時,通常要根據需要重寫其中方法。 (2

)當我們在執行非同步任務時,要構建非同步任務物件,然後呼叫物件的

execute***

方法執行任務。

(1)doinbackground   執行在工作執行緒

(2)onpreexecute     執行在主線程,在

doinbackground

之前執行

(3)onprogressupdate  用於執行進度更新操作,它工作在主線程

(4)onpostexecute     執行在主線程,在

doinbackground

方法之後執行

(5)publishprogress    發布進度

public class mainactivity extends activity catch(exception e)finallycatch(exception e){}

if(out!=null)trycatch(exception e){}

//將陣列中的內容轉換為

bitmap

物件

return bitmapfactory.decodebytearray(array,0, array.length);

/**此方法用於執行進度更新操作,它工作在主線程

*/-----------

更新進度

@override

protected voidonprogressupdate(integer... values) catch(exception e){}

return get(7);

//get方法為乙個阻塞式方法,需要等待任務的執行結果

system.out.println(f.get());//此方法需等任務執行結束

es.shutdown();

public static int get(int n)catch(exception e){}

return null;

public void downtask(final int position)catch(exception e){}

public class threadpooldemo03 , 3, timeunit.seconds);//延遲

3秒以後執行

es.schedule(new callable(), 8, timeunit.seconds);//延遲

8秒以後執行

es.shutdown();

public class threadpooldemo05 ,//command任務

runnable

1,//initialdelay初始延遲

1,//period 時間間隔

(兩次任務啟動的間隔時間

,不管上一次任務是否已經結束

) timeunit.seconds);//unit 時間單位

//重複性的執行任務

es.schedulewithfixeddelay(new runnable() ,//command

1,//initialdelay

1,//delay(任務執行結束以後再延遲

delay

時間開啟下一次任務

) timeunit.seconds);//unit

基本同上!

多工程式設計 程序和執行緒day1

多工 實現方式 匯入模組 import multiprocessing 建立乙個程序物件 a multiprocessing.process target 函式名 啟動建立好的程序 a.start 多執行緒 實現步驟 匯入模組 import threading 建立乙個程序物件 a threadin...

覆盤Spring中定時任務和非同步執行緒池

專案中最近使用了多個定時任務處理業務需求,於是在實現業務邏輯過程中,產生了上圖一些思考和疑問,現在利用空餘時間進行一次覆盤。component public class scheduledtask scheduled cron 0 1 public void scheduledtask2 相同定時任...

day24總結 多執行緒和設計模式

jdk5以後的針對執行緒的鎖定操作和釋放操作 定義鎖物件 private lock lock new reentrantlock 加鎖 lock.lock 釋放鎖 lock.unlock 死鎖問題的描述和 體現 死鎖 兩個或兩個以上的執行緒在爭奪資源的過程中,發生的一種相互等待的現象。public ...