package Ġcom . android architecture . core . executor Ċ Ċ import Ġandroid . support . annotation . NonNull ; Ċ Ċ import Ġjava . util . concurrent . BlockingQueue ; Ċ import Ġjava . util . concurrent . Linked BlockingQueue ; Ċ import Ġjava . util . concurrent . Thread Factory ; Ċ import Ġjava . util . concurrent . ThreadPoolExecutor ; Ċ import Ġjava . util . concurrent . TimeUnit ; Ċ Ċ import Ġjavax . inject . Inject ; Ċ import Ġjavax . inject . Singleton ; ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġbinary Ġon Ġ 5 / 1 9 / 1 7 . Ċ Ġ*/ Ċ @ Singleton Ċ class ĠJob Executor Ġ@ Inject Ġconstructor () Ġ: ĠThread Executor Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm ThreadPoolExecutor : ĠThreadPool Executor ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwork Queue Ġ= ĠLinked BlockingQueue < Runnable >() ĊĠĠĠĠĠĠĠ Ġval Ġthread Factory Ġ= Ġcom . android architecture . core . executor . Thread Factory ( THREAD _ NAME _) ĊĠĠĠĠĠĠĠ Ġm ThreadPoolExecutor Ġ= ĠThreadPool Executor ( INITIAL _ POOL _ SIZE , ĠMAX _ POOL _ SIZE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK EE P _ AL IVE _ TIME , ĠK EE P _ AL IVE _ TIME _ UNIT , Ġwork Queue , Ġthread Factory ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( run nable : ĠRunnable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm ThreadPoolExecutor . execute ( run nable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINITIAL _ POOL _ SIZE Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠMAX _ POOL _ SIZE Ġ= Ġ 5 ĊĊĠĠĠĠĠĠĠ Ġ// ĠSets Ġthe Ġamount Ġof Ġtime Ġan Ġidle Ġthread Ġwaits Ġbefore Ġterminating ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠK EE P _ AL IVE _ TIME Ġ= Ġ 1 0 L ĊĊĠĠĠĠĠĠĠ Ġ// ĠSets Ġthe ĠTime ĠUnit Ġto Ġseconds ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠK EE P _ AL IVE _ TIME _ UNIT Ġ= ĠTimeUnit . SECONDS ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTHREAD _ NAME _ Ġ= Ġ" android _" ĊĠĠĠ Ġ} Ċ }