2 回答

TA貢獻1853條經驗 獲得超18個贊
關于 Executor 可以參考 java并發編程-Executor框架。SerialExecutor
的作用是使用指定的(通過構建函數傳入)Executor
對象,順序的執行任務(通過 execute()
方法實現)
SerialExectuor.execute()
會把傳入的 Runnable
放在隊列里,然后按順序執行,如果隊列為空(初始或已經執行完),會立即啟動傳入的 Runnable
對象,用法大概就像這樣
SerialExecutor sExecutor = new SerialExecutor(sourceExecutor);
sExecutor.execute(task1);
sExecutor.execute(task2);
sExecutor.execute(task3);
// ...

TA貢獻2080條經驗 獲得超4個贊
SerialExecutor與其他Executor的區別在于,使用execute(final Runnable r)提交任務時,如果當前任務執行完成之后,會繼續執行下一個任務,也就是代碼種finally里面的scheduleNext();這句起的作用,所以就是連續執行了。
普通的Executor框架是通過調度器自身的線程的run方法中無線循環讀取隊列中的任務去觸發任務的執行,而SerialExecutor在每個任務中顯示的調用了scheduleNext來觸發下一個任務的執行。
添加回答
舉報