LiteAsync是Github上一款開源的關於異步並發、任務調度的框架。
LiteAsync是一個專注於異步與並發的簡單類庫,它提供一個基於andorid系統的改善、增強的AsyncTask,使得它具有真正並發的能力,且能再子執行緒執行,同時會均衡手機能力來控制執行緒開銷。Crossbow還提供了簡單、安全和快取等異步任務類用於快速開發,更方便的是它有一個任務執行器實現了順序、關卡、延時、定時任務的執行與調度。
基本介紹
- 基於系統:Android
- 框架類型:異步並發
使用場景,AsyncTask組件,TaskExecutor組件,
使用場景
- 兩個原子任務,任務2需要等待任務1完成了才能進行。
- 任務3需要等任務1和任務2都完成了才能進行,但是1和2可以並發以節省時間。看起來要寫很多代碼來調度任務。
- 伺服器接口壓力過大,要被你的調用頻度調戲到down機啦!
- 系統的異步任務類AsyncTask要用的泛型太多太重啦,並且只能在主執行緒使用,不爽!
- 要么大量並發使手機cpu吃緊卡到爆,要么不能真正(Android系統自帶AsyncTask)並發執行。不爽!
OK,如果你都遇到過,恭喜你,說明你的套用對開發者要求還是挺碉的。 那么是不是需要很多的代碼才能完成這種和諧並發和任務調度呢?nooooo!有了Crossbow,我們只要一行代碼。 比方說場景2, Task3要等待Task1,Task2執行完才能執行,我們使用LiteAsync可以這樣做:
TaskExecutor.newCyclicBarrierExecutor().put(task1).put(task2).start(task3);
這么一行代碼,低調,內斂,而又充滿能量,再多的任務可以執行,Task1,Task2並發執行,且隨時可取消執行,結束(或取消)時會自動調度Task3執行。
AsyncTask組件
- AsyncTask(增強版):真正可並發,均衡手機能力與開銷,針對短時間大量並發有調控策略,可在子執行緒執行。
- SimpleTask:具備Ameliorative AsyncTask所有特性,簡化了使用方法,僅設定一個泛型(結果類)即可。
- SafeTask:具備Ameliorative AsyncTask所有特性,但是各個環節是安全的,能捕獲任何異常,並傳遞給開發者。
- CachedTask:具備Ameliorative AsyncTask所有特性,增加了對結果的快取,可設定一個逾時時間,只有在逾時後才去異步執行,否則取快取結果返回。
TaskExecutor組件
TaskExecutor是一個內置的任務調度器。
- 順序執行器,使一系列異步任務按序執行,非並發
- 關卡執行器,使一系列異步任務並發執行,最後會調度執行一個終點任務
- 延遲執行器,使一個異步任務延遲開發者指定的時間後執行
- 心跳執行器,是一個異步任務按執行的間隔持續執行