public void start(){
  stop();
  mCacheDispatcher=new CacheDispatcher(mCacheQueue,mNetworkQueue,mDelivery);
  mCacheDispatcher.start();
  ThreadPoolExecutor threadPoolExecutor=(ThreadPoolExecutor)Executors.newFixedThreadPool(mDispatchers.length);
  for (int i=0; i < mDispatchers.length; i++) {
    NetworkDispatcher networkDispatcher=new NetworkDispatcher(mNetworkQueue,mNetwork,mDelivery);
    mDispatchers[i]=networkDispatcher;
    threadPoolExecutor.submit(networkDispatcher);
  }
}

public void start ( ) { stop ( ) ; mCacheDispatcher = new CacheDispatcher ( mCacheQueue , mNetworkQueue , mDelivery ) ; mCacheDispatcher . start ( ) ; ThreadPoolExecutor threadPoolExecutor = ( ThreadPoolExecutor ) Executors . newFixedThreadPool ( mDispatchers . length ) ; for ( int i = 0 ; i < mDispatchers . length ; i ++ ) { NetworkDispatcher networkDispatcher = new NetworkDispatcher ( mNetworkQueue , mNetwork , mDelivery ) ; mDispatchers [ i ] = networkDispatcher ; threadPoolExecutor . submit ( networkDispatcher ) ; } }
starts the dispatchers in this queue .
