package Ġcom . ag abo ard i . par ch int as ca . common . base Ċ Ċ import Ġandroid . os . Handler Ċ import Ġjava . util . concurrent . Array BlockingQueue Ċ import Ġjava . util . concurrent . ThreadPoolExecutor Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠUse Case ThreadPool Scheduler : ĠUse Case Scheduler Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Handler Ġ= ĠHandler () ĊĊĠĠĠ Ġprivate Ġval ĠPO OL _ SIZE Ġ= Ġ 3 2 ĊĠĠĠ Ġprivate Ġval ĠMAX _ POOL _ SIZE Ġ= Ġ 1 2 8 ĊĠĠĠ Ġprivate Ġval ĠTIME OUT Ġ= Ġ 3 0 ĊĊĠĠĠ Ġprivate Ġvar Ġm ThreadPoolExecutor : ĠThreadPool Executor ? Ġ= Ġnull ĊĊĠĠĠ Ġinit { ĊĠĠĠĠĠĠĠ Ġm ThreadPoolExecutor Ġ= ĠThreadPool Executor ( POOL _ SIZE , ĠMAX _ POOL _ SIZE , ĠTIME OUT . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . SECONDS , ĠArray BlockingQueue ( POOL _ SIZE )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( run nable : ĠRunnable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm ThreadPoolExecutor ?. execute ( run nable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠUse Case . Response Value > Ġnotify Response ( response : ĠV , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ Ġuse Case Callback : ĠUse Case . UseCase Callback < V >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Handler . post Ġ{ Ġuse Case Callback . on Success ( response ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠUse Case . Response Value > ĠonError ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Case Callback : ĠUse Case . UseCase Callback < V >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Handler . post Ġ{ Ġuse Case Callback . onError () Ġ} ĊĠĠĠ Ġ} Ċ }